AngularJS: Die zweiseitige Datenbindung schlägt fehl, wenn das Element ngModel und eine benutzerdefinierte Direktive hat

8

Ich habe zwei Anweisungen gemacht, um benutzerdefinierte Fehlermeldungen in AngularJS einzurichten:

Fehler - & gt; zeigt die Fehlermeldungen für ein Formular an

Fehlermeldung - & gt; erstellt eine benutzerdefinierte Fehlermeldung für eine Eingabe

Aus irgendeinem Grund, wenn ich die error-message -Direktive zu dem Element hinzufüge, funktioniert die ng-Modell-Bindung nicht mehr (aber Validierung tut es).

Siehe hier Ссылка

Hilfe bitte:)

    
apohl 14.03.2013, 20:35
quelle

1 Antwort

5

Das Problem besteht darin, dass Ihre errorMessage -Direktive einen isolierenden Bereich verwendet. Isolate-Bereiche beeinflussen das gesamte Element , sodass die ngModel -Direktive in einem isolieren Bereich ausgewertet wurde - was offensichtlich nicht funktionieren kann - das Modell befindet sich im übergeordneten Bereich.

Ich bin mir nicht sicher, warum Sie hier einen isolierten Bereich eingerichtet haben. Da Sie versuchen, eine Komponente zu erstellen, die mit anderen Direktiven interagieren muss, ist ein isolierter Bereich nicht die beste Wahl. Da errorMessage keinen Einfluss auf den aktuellen Bereich hat, benötigen Sie möglicherweise keinen definierten Bereich, aber Sie können einen untergeordneten Bereich verwenden, wenn Sie dies wünschen.

Sehen Sie sich hier an, um mehr darüber zu erfahren, wann Sie jeden Geltungstyp für eine Direktive verwenden müssen.

    
Josh David Miller 14.03.2013, 20:49
quelle