Я знаю, что мы обычно передаем функции директивам по изолированной области:
.directive('myComponent', function () {
return {
scope:{
foo: '&'
}
};
})
И затем в шаблоне мы можем вызвать эту функцию следующим образом:
<button class="btn" ng-click="foo({ myVal: value })">Submit</button>
Где myVal
- это имя параметра, который принимает функция foo
в родительской области.
Теперь, если я намерен использовать это из функции link
вместо шаблона, мне нужно будет вызвать его с помощью: scope.foo()(value)
, так как scope.foo
служит в качестве обертки исходной функции. Мне это кажется немного утомительным.
Если я передаю функцию директиве myComponent
, используя =
:
.directive('myComponent', function () {
return {
scope:{
foo: '='
}
};
})
Тогда я смогу просто использовать scope.foo(value)
из моей функции ссылок. Так ли это допустимый прецедент для использования двухсторонней привязки к функциям, или я делаю какой-то хак, который я не должен делать?