Richtlinie Anwendungsbereich zwei-Wege-Bindung funktioniert nicht mit "="
habe ich diese sehr einfache Richtlinie.
Sie können den code hier
In den code,
ich verwendet habe, ' @ ' für link in dem Umfang.
Ich bin in der Lage zu bekommen es richtig.
Aber das ist nicht zwei-Wege-Bindung, also versuchte ich es mit "=" in scope.
Dieser Teil scheint nicht zu reflektieren, in meinem template. Ich habe versucht zu sehen, ob die link-variable
ist in Umfang,scheint es, werden nicht definiert.
Sollte diese Richtlinie in einem controller?
Was ist, dass ich bin fehlt in meinem code.
InformationsquelleAutor harikrish | 2014-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheinen Sie zu fehlen, der Unterschied zwischen den
@
und=
Bindungen. Während die 2 könnte ähnlich Aussehen das sind grundsätzlich verschiedene Möglichkeiten der überbrückung-Richtlinie "Welt" mit der "Seite " Welt".Zunächst beginnen wir mit den Gemeinsamkeiten: sowohl die Art der Bindung ermöglicht das übergeben von Daten von einer Seite, die eine Richtlinie in der Richtlinie selbst (Richtlinie intenal Umfang). Aber dies ist, wo die ähnlichkeiten Ende, und die Liste der Unterschiede geht so:
=
ist der 2-Wege-Datenbindung, die können Kreuz Seite /Richtlinie-Welt in beide Richtungen: von der einen Seite zu einer Richtlinie und in der Richtlinie festgelegten Umfang auf die Seite Anwendungsbereich.@
auf der anderen Seite können Sie nur übergeben von Daten von einer Seite auf die Richtlinie und nicht von der Richtlinie an die Seite.=
Bindung ermöglicht die übergabe der Daten definiert, die sich auf Bereiche - , ist -, JavaScript-Variablen (primitive, arrays, Objekte).@
ist anders und übergabe von Daten über ein DOM-Attribut. Als solche werden diese Attribute beschränkt sich auf nur Zeichenfolgen.=
und@
werden auch ausgelöst, die anders als die Seite, die eine Richtlinie für=
wir brauchen, um passieren eine Ausdruck, dass Punkte auf die Daten definiert, die in den Anwendungsbereichwährend mit
@
werden wir durch den DOM und die Notwendigkeit der Nutzung der Interpolations-Richtlinie ({{foo}}
), um Zugriff auf Daten auf den Umfang.Nach all diesen Erklärungen können Sie sehen, dass die Verwendung
=
in der Richtlinie definition, die wir brauchen, um passieren eine Ausdruck also, wenn Sie dies tun:<mydirective link="link1" group="main"></mydirective>
man effektiv sagen: pass auf die Richtlinie einen Wert, derlink1
variable definiert einen Geltungsbereich. Da eine solche variable nicht definiert ist Sie auf der Durchreise sindundefined
der Richtlinie.Also, wenn Sie wollen, übergeben Sie eine Konstante (die ich nehme an, Sie wollen zu tun), müssen Sie schreiben:
Hier ist eine funktionierende plunk: http://plnkr.co/edit/M3qL4MdmoWjTWzZGkwz0?p=preview
Natürlich mit 2-Wege-Datenbindung (
=
) zu binden, um eine string-Konstante ist überflüssig. Dies ist besser geeignet für@
, richtig ?ja.. ich denke, @pkozlowski.opensource wurde nur versucht, mich zu verstehen, was der Unterschied ist.
InformationsquelleAutor pkozlowski.opensource
Eine Sache, die meisten Menschen vergessen, ist, dass Sie können nicht nur erklären, sondern einen isolierten Bereich mit dem Objekt notation und erwarten übergeordneten Bereich Eigenschaften gebunden zu sein. Diese Bindungen funktionieren nur, wenn die Attribute deklariert wurden, durch die die Bindung 'Magie' funktioniert. Siehe für weitere Informationen:
https://umur.io/angularjs-directives-using-isolated-scope-with-attributes/
InformationsquelleAutor Inc1982