2014-07-09 6 views
13

Kann man einen isolate-Bereich mit optionaler kaufmännischer Bindung (Elternkontext) erstellen?Isolieren Sie die Bereichsrichtlinie mit optionalem Und-Zeichen-Binding in angularjs?

scope: { 
    myMethod: '&?' 
} 

Wenn die Anweisung implementiert wird, ohne myMethod zuzuweisen, tritt kein Fehler auf. Ich sehe jedoch, wenn die optionale Eigenschaft nicht zugewiesen ist, Angular es sowieso eine Noop-Funktion. Daher scheint es innerhalb der Richtlinie keine Möglichkeit zu geben, zu wissen, ob der Implementierer der optionalen Eigenschaft eine Methode zugewiesen hat oder nicht.

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

Irgendwelche Einsichten? Ich würde gerne wissen, ob der Implementierer die optionale Eigenschaft zugewiesen hat.

Antwort

15

Überprüfen Sie die attrs Objekt zu sehen, ob es bewohnt war: '? &'

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