2014-07-09 18 views
13

İsteğe bağlı ampersan (üst içerik) veri bağlamasının izolatı kapsamı oluşturulabilir mi?Angularjs'de isteğe bağlı ampersan bağlama ile kapsam yönergesini ayırın?

scope: { 
    myMethod: '&?' 
} 

Direktif myMethod atanmadan uygulanırsa, hata yoktur. Bununla birlikte, isteğe bağlı özellik atanmadığında, açısal olarak bir düğüm işlevini zaten atadığını görüyorum. Bu nedenle, uygulayıcıya isteğe bağlı özelliği bir yöntem tayin edip etmediyse, direktif içerisinde, bilmenin bir yolu yoktur.

link: function (scope, element, attrs) { 
scope.myMethod(); //this calls a noop function instead of being undefined, as i exected 
} 

Herhangi bir anlayış? Uygulamanın isteğe bağlı özelliği atamış olup olmadığını bilmek isterim.

cevap

15

Kontrol attrs nesne doldurulan olup olmadığını görmek için: '? &'

link: function (scope, element, attrs) { 
    if (attrs.myMethod) { 
     scope.myMethod(); 
    } 
}