Подтвердить что ты не робот

Обозначить директиву области с дополнительным привязкой к амперсанду в angularjs?

Можно ли создать область выделения с необязательным привязкой данных амперсанда (родительского контекста)?

scope: {
  myMethod: '&?'
}

Если директива реализована без назначения myMethod, ошибки нет. Однако я вижу, что, когда необязательное свойство не назначено, angular назначает ему noop-функцию. Поэтому в директиве, по-видимому, нет способа узнать, присвоил ли разработчик дополнительное свойство методу или нет.

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

Любые идеи? Я хотел бы знать, присвоил ли разработчик дополнительное свойство.

4b9b3361

Ответ 1

Проверьте объект attrs, чтобы узнать, заполнено ли оно:

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