Isolate scope directive with optional ampersand binding in angularjs?

angularjs

Solution

Check the `attrs` object to see if it was populated:

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

Problem

Can one create a isolate scope with optional ampersand (parent context) data binding? ``` scope: { myMethod: '&?' } ``` If the directive is implemented without assigning myMethod, there is no error. However, I see that when the optional property is not assigned, angular assigns it a noop function anyways. Therefore, there appears to be no way to know, within the directive, if the implementer assigned the optional property a method or not. ``` link: function (scope, element, attrs) { scope.myMethod(); //this calls a noop function instead of being undefined, as i exected } ``` Any insights? I'd like to know if the implementor has assigned the optional property.

Original source