scope. $ watch in der Anweisung Link-Funktion wird nicht aufgerufen

7

Ich habe diese Fabrik,

%Vor%

Ich habe diesen Controller,

%Vor%

und ich habe diese Link-Funktion in einer Direktive,

%Vor%

Wenn authentication.loginRequired = true; im Controller ausgeführt wird, wird scope.$watch in der Direktive nicht aufgerufen.

Irgendwelche Ideen warum?

    
Johan Alkstål 09.10.2013, 19:49
quelle

2 Antworten

22

Scope. $ watch akzeptiert als ersten Parameter Ausdruck oder Funktion. Was Sie als ersten Parameter übergeben, ist ein Wert , gespeichert in authetication.loginRequired .

Das Folgende funktioniert (vorausgesetzt, Sie haben authetication factory korrekt eingegeben):

%Vor%     
jusio 09.10.2013, 20:00
quelle
8

Im Anschluss an @ Jusios Antwort ist es auch möglich, einen Zeichenfolgenausdruck zu verwenden, solange Sie Ihre Fabrik Teil des Bereichs machen:

%Vor%

Das liegt daran, dass wenn ein $watch mit einem Zeichenfolgenausdruck versehen wird, diese Zeichenfolge gegen ihren Gültigkeitsbereich ausgewertet wird.

Sie sollten entscheiden, ob es sich lohnt, den Geltungsbereich Ihrer Richtlinie aufzufüllen, damit Sie einen besser lesbaren Code haben. Wenn du es schon aus einem anderen Grund tust, ist das keine große Sache.

    
Michael Benford 09.10.2013 20:20
quelle