Wie beobachte ich mehrere interpolierte Attribute in einer Direktive?

8

Ich verstehe nicht, wie man mehrere Attribute gleichzeitig in der Link-Funktion sieht, also erstelle ich ein Objekt mit allen Parametern und beobachte es. Aber ich habe bemerkt, dass das Attribut in der Link-Funktion eine Zeichenfolge und kein Objekt ist, also verwende ich angular.fromJson (val).

Alle Beispiele, die ich gefunden habe, verwenden nur einen Parameter

Können Sie erklären, wie Sie mehrere Attribute beobachten können?

Danke

BEARBEITEN : Ich kann den Parameter attrs nicht verwenden, da ich die Attribute binden muss - d. H. Sie müssen interpoliert werden. Zum Beispiel

%Vor%

Ich denke, dass ich $ watch

verwenden muss %Vor%     
heckmac 19.10.2012, 14:02
quelle

1 Antwort

11

Ich bin mir nicht sicher, ob ich Ihre Frage vollständig verstehe, also korrigieren Sie mich bitte, wenn ich falsch verstehe. Möchten Sie nur Werte aus mehreren Attributen Ihrer Anweisung ziehen? Also sagen Sie, Sie haben ein HTML wie folgt:

%Vor%

Und Sie möchten die Werte dieser verschiedenen Attribute erhalten? In der Link-Funktion verwenden Sie einfach den Parameter attrs. Zum Beispiel:

%Vor%

Sie können auch die Eigenschaft scope für die Direktive verwenden, um Attribute automatisch an Ihren Bereich zu binden. Siehe ihre Dokumentation zu Richtlinien. So etwas in der Art:

%Vor%

Und dann enden diese Eigenschaften automatisch in Ihrem Bereich. Jedoch wie ich herausgefunden habe Diese Werte sind nicht immer im Bereich, wenn Sie es erwarten. Sie können also mit der Funktion $watch tun, was Sie brauchen. Etwas wie:

%Vor%

Wenn Sie sie alle gleichzeitig verwenden müssen, können Sie eine Funktion für den ersten Parameter von $watch verwenden, die eine andere Zeichenfolge zurückgibt, sobald sie alle vorhanden sind, und dann Ihre Logik in die Funktion, die der 2. Parameter ist. So etwas wie das:

%Vor%

Wenn Sie Objekte in Ihren Bereich binden möchten, können Sie '=' anstelle von '@' verwenden. Eine andere Option ist '& amp;' was eine Funktion im übergeordneten Bereich auswertet. Dies alles wird in der oben verlinkten Dokumentation erläutert.

    
dnc253 19.10.2012, 14:42
quelle