Désactiver l'interface utilisateur-sref en fonction d'une condition
Pouvez-vous m'indiquer un moyen pour désactiver le bouton "soumettre", qui change d'état en:
<a ui-sref="state">Submit</a>
Le bouton doit être activé que lorsque le formulaire est valide.
ng-disabled
avec ui-sref
ne fonctionne pas:
<form name="tickets">
<button ng-disabled="!canSave()"><a ui-sref="view">Submit</a></button>
</form>
canSave fonction à l'intérieur d'app.js en cours:
$scope.canSave = function(){
return $scope.tickets.$dirty && $scope.tickets.$valid;
};
Vous devez vous connecter pour publier un commentaire.
Il vous suffit de le coupler avec
ng-click
de sorte queng-disabled
fonctionne.Ici est une façon élégante en utilisant une mesure de la directive:
JS:
HTML:
Il est un pur CSS solution pour le problème.
Il suffit de régler le pointeur événements sur votre tag à aucun:
Bien sûr, vous devez définir un plus précis sélecteur CSS pour cibler les boutons que vous souhaitez.
Mon point de vue sur la directive fournie par @m59 (sans l'introduction d'un isolé champ d'application):
<a ui-sref-if="!form.$invalid" ui-sref-val="home">{{link.name}}</a>
.La façon la plus simple que j'ai trouvé pour le faire de façon conditionnelle dans le modèle
Lorsque votre condition est remplie, je point à l'état actuel qui n'a pas activer la transition chose, je l'transition de l'état de besoin.
dans l'interface utilisateur-sref vous pouvez essayer de cacher url fondée sur la condition, par exemple j'ai ce code et il fonctionne dans les url
et dans mon contrôleur
Authuser est une usine à ma page principale
J'ai eu des problèmes avec l'isoler de la portée et de l'utilisation d'autres directives à l'intérieur des ancres, voici donc mon point de vue, le remplacement de la iscolate portée avec des attributs réguliers.
Html Ressemble à ceci.
ui-router v1.0.18
introduit la prise en chargeng-disabled
sur les balises d'ancrage.