2013-03-05 19 views
11

angularjs kodu: Sen yönergede bir scope: { myId: '@' } olduğunu görebilirsinizNeden özel yönergemin öznitelik değerini alamıyorum?

app.directive('test', function(){ 
    return { 
    restrict: 'A', 
    scope: { 
     myId: '@' 
    }, 
    link: function(scope) { 
     alert(scope.myId); 
    } 
    } 
}); 

.

Ve html kodu:

<div test my-id='123'></div> 

Benim bir my-id='123' tanımlanmış görebilirsiniz.

Umarım yönerge 123 uyarır, ancak undefined uyarılır. Benim hatam nerede?

PS: http://plnkr.co/edit/sL69NqWC70Qfwav5feP2?p=preview

cevap

11

değerli niteliklerle uygun değeri elde etmek (http://docs.angularjs.org/guide/directive arasında "Nitelikler" bölümünde açıklanmıştır) $observe nitelikler gerekir: Burada canlı demo. http://plnkr.co/edit/NtIHmdoO7IAEwE74ifB5?p=preview

Bu aslında angularjs : logging scope property in directive link function displays undefined arasında çoğaltmak edilir: Burada

bir çalışma plunk olduğunu. Ayrıca, PR https://github.com/angular/angular.js/pull/1555'un yakın zamanda birleştirildiği ve plickerinizin AngularJS'nin gelecek sürümlerinde $observe kullanmadan çalışması gerektiği de belirtilmelidir.

-

söz konusu demo son sürümünde çalışılır

: 1.1.3, bunu denemek (ve 1.1.3 için angularjs url değiştirme) olabilir.

+0

en son sürümü üzerinde çalışır: 1.1.3, teşekkür ederim ve PrimosK, bu gerçekten kafa karıştırıcı bir sorundur :) – Freewind

+1

Ben senin sopayı test ettim, çalıştım. Açısal 1.2.23'te test edildi: "Bilinmeyen sağlayıcı: iAttrsProvider" – BigDong

İlgili konular