Warum erhalte ich nicht den Wert des Attributs meiner benutzerdefinierten Richtlinie?
Den angularjs-code:
app.directive('test', function(){
return {
restrict: 'A',
scope: {
myId: '@'
},
link: function(scope) {
alert(scope.myId);
}
}
});
Können Sie sehen, es ist ein scope: { myId: '@' }
in der Richtlinie.
Und der html-code:
<div test my-id='123'></div>
Können Sie sehen, ich definierte ein my-id='123'
.
Ich hoffe, dass die Richtlinie alert 123
, aber es alarmiert undefined
. Wo ist mein Fehler?
PS: hier ist eine live-demo: http://plnkr.co/edit/sL69NqWC70Qfwav5feP2?p=preview
InformationsquelleAutor Freewind | 2013-03-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
$observe
Attribute (wie unter "Attribute" im Abschnitt http://docs.angularjs.org/guide/directive), um den richtigen Wert des interpolierten Parametern.Hier ist eine funktionierende plunk: http://plnkr.co/edit/NtIHmdoO7IAEwE74ifB5?p=preview
Dies ist im wesentlichen Duplikat der angularjs : Protokollierung scope-Eigenschaft, die in der Richtlinie-link-Funktion zeigt an, undefined. Es sollte auch darauf hingewiesen, dass die PR - https://github.com/angular/angular.js/pull/1555 war vor kurzem zusammengelegt wurden und Ihre plunker funktionieren sollte, ohne mit
$observe
in den zukünftigen Versionen von AngularJS.--
Die demo in Frage, arbeitete in der neuesten version: 1.1.3, Sie können es versuchen (und ändern Sie die angularjs url 1.1.3).
Ich habe getestet, Ihre zupfen, gearbeitet. Getestet in eckigen 1.2.23 : "Unbekannter Anbieter: iAttrsProvider"
InformationsquelleAutor pkozlowski.opensource