У меня есть довольно простое указание, что я хотел бы быть в состоянии выполнить обратный вызов с параметрами, поставляемых с помощью директивы и объема. Например:AngularJS Директива Run Ответный С Params
<div ng-repeat="user in users">
<div sample="..." callback="welcome(user, $message)">
</div>
</div>
У меня возникли проблемы с использованием $parse, чтобы справиться с этим. Моя директива образца выглядит следующим образом:
app.directive('sample', ['$parse', function ($parse) {
return {
restrict: 'A',
scope: {},
link: function (scope, element, attrs) {
// ...
function greet() {
var callback = $parse(attrs.callback);
callback(scope, { $message: 'Howdy' });
}
},
},
}]);
Однако, несмотря на получение функции от $ разбора - выполнение функции никогда не приводит в своей приветственной функции (определенной в контроллере) называют (примечание: на угловом 1.5.x) , Я предполагаю, что область как-то ошибочна (что она использует изолированную область видимости вместо родительской области), но мне нужна изолированная область (упрощенная, например). Что я делаю не так?
Вы уверены, что вам нужно '$ parse' и директивы в целом? Если это для одного контроллера, вы можете определить '$ scope.greet' в контроллере. –
Директива используется для нескольких контроллеров, а «обратный вызов» имеет разные параметры (и необязательное «$ message») в определении для них (поэтому это невозможно). – Stussa