При привязке функции обратного вызова к директиве важно выполнить эту функцию с правильным контекстом. Теперь, если директива имеет изолированную сферу это не проблемасвязывать обратный вызов с директивой без изолированного объема
<bar-foo callback="mycontroller.callback()"></bar-foo>
и директива:
...
scope:{
callback: '&'
},
...
Без изолированной сферы извлечь обратный вызов от $ ATTRS attrubute
$scope.callback = $parse($attrs.callback)($scope);
Но теперь я не могу сделать
<bar-foo callback="mycontroller.callback()"></bar-foo>
Потому что он выполнит обратный вызов напрямую. Каким будет предпочтительный способ решить эту проблему?
Я видел этот ответ: :), но я надеялся на что-то подобное, как в случае изолированного объема. Thnx! –
@JeanlucaScaljeri выделенные области делают аналогичную вещь :) Они просто скрывают это от наших глаз – smnbbrv