Как выявить поведение из директивы с изолированной областью действия?
Как я могу выставить метод из директивы? Я знаю, что я должен использовать атрибуты для данных, но я действительно хочу выставитьповедениенеданные, То, что может вызвать родительский контроллер.
Позволять'скажем, мой DOM выглядит так:
Call
JavaScript:
angular.module("main", []).controller("MyCtrl", function($scope) {
$scope.call = function() {
$scope.myfn();
};
}).directive("myDirective", function() {
return {
// scope: {},
controller: function($scope) {
$scope.myfn = function() {
console.log("myfn called");
}
}
};
});
jsFiddle:http://jsfiddle.net/5gDjQ/7/
Еслиscope
закомментировано (то есть директива не имеет изолированной области видимости), она работает просто отлично. Когда я нажимаю кнопку,myfn
называется и входит в консоль.
Как только я раскомментируюscope
это нет работа.myfn
определяется в дочерней области и не легко доступен для родителя.
В моем случае, я думаю, что загрязнение родительской области - плохая идея, и я действительно хотел бы избежать этого.
Итак, как я могу представить функцию из директивы на родительский контроллер? Или: Как я могу вызвать метод по директиве из родительского контроллера?