Ответ 1
Проверьте объект attrs
, чтобы узнать, заполнено ли оно:
link: function (scope, element, attrs) {
if (attrs.myMethod) {
scope.myMethod();
}
}
Можно ли создать область выделения с необязательным привязкой данных амперсанда (родительского контекста)?
scope: {
myMethod: '&?'
}
Если директива реализована без назначения myMethod, ошибки нет. Однако я вижу, что, когда необязательное свойство не назначено, angular назначает ему noop-функцию. Поэтому в директиве, по-видимому, нет способа узнать, присвоил ли разработчик дополнительное свойство методу или нет.
link: function (scope, element, attrs) {
scope.myMethod(); //this calls a noop function instead of being undefined, as i exected
}
Любые идеи? Я хотел бы знать, присвоил ли разработчик дополнительное свойство.
Проверьте объект attrs
, чтобы узнать, заполнено ли оно:
link: function (scope, element, attrs) {
if (attrs.myMethod) {
scope.myMethod();
}
}
Использование '&?' возвращает undefined, если атрибут не был установлен.
https://github.com/angular/angular.js/commit/6a38dbfd3c34c8f9efff503d17eb3cbeb666d422