Ich habe eine benutzerdefinierte Direktive auf die Änderung der Ansicht Wert hinzufügen Klassen zu einem input:text
basierend auf seinem Wert.
restrict: 'A',
require : 'ngModel',
link : function(scope, element, attrs, modelCtrl) {
function apply(input) {
// Simplified ..
if (input!=='Ooops' && isNaN(parseFloat(input)) {
modelCtrl.$setViewValue('Ooops');
element.addClass('is-nan');
return undefined;
}
}
modelCtrl.$parsers.push(apply);
}
Es funktioniert gut, wenn ich den Wert bearbeiten. Ich möchte jedoch die gleiche Logik anwenden, wenn das Element durch Angular gebunden ist, so dass die Klassen und Ansichtswerte festgelegt werden.
Grundsätzlich möchte ich apply
aufrufen, wenn die Richtlinie verknüpft ist. So habe ich versucht, apply(element.val())
am Ende der link
Funktion hinzuzufügen, aber die element.val()
ist immer leer.
Ich denke, ich sollte einen anderen Lebenszyklus-Hook verwenden, um diese Methode aufzurufen, kann sie aber nicht finden. Eine mögliche Lösung kann compile
anstelle von link
sein, aber da ich keine DOM-Transformation mache, sollte dies nicht erforderlich sein.
Ich habe versucht aber wieder ist der Eingabewert leer.
Wie kann ich die Ansichtslogik anwenden, wenn eine Direktive verknüpft ist?
Danke