Ich entwickle den AngularJS-Client. Ich habe eine benutzerdefinierte Direktive, die als Attribut verwendet wird. Die Direktive überprüft die Zugriffsebene des Elements und legt fest, dass es deaktiviert wird, wenn der aktuelle Benutzer es nicht verwenden darf.ng-disabled überschreibt das Verhalten der benutzerdefinierten Richtlinie
Das Problem beginnt, wenn das gleiche Element ng-disabled
Attribut hat. In diesem Fall setzt die ng-disabled
die Fähigkeit des Elements, egal was ich in meiner benutzerdefinierten Anweisung einstelle.
Zum Beispiel Ich habe eine Schaltfläche, die deaktiviert werden sollte, wenn das Formular ungültig ist. Gleichzeitig möchte ich meine benutzerdefinierte Direktive verwenden, um die Schaltfläche zu deaktivieren, wenn der Benutzer nicht berechtigt ist, sie zu verwenden.
<button ng-disabled="myFrm.myCtrl.$invalid" my-custom-directive="controlName"/>
Innen myCustomDirective
ich überprüfen, ob die genannte Kontrolle erlaubt wird, durch den Benutzer aktiviert werden. Wenn nicht - setze ich das deaktivierte Attribut auf das Element. Aber im Fall myFrm.myCtrl.$invalid
ist falsch ng-disabled
entfernt das deaktivierte Attribut und die Schaltfläche ist aktiviert.
Gibt es eine Lösung für dieses Problem? Wie kann ich verhindern, dass ng-disabled den Vorgang ausführt?
Teilen von Code würde in schnelle Auflösung helfen –
Nicht sicher, ob es eine gute Idee ist, aber können wir 'myFrm.myCtrl' nicht in diese Direktive übergeben und dementsprechend einen booleschen Wert in' $ scope' setzen, der dann * angesehen werden kann * von 'ng-disabled' –