Как выявить поведение из директивы с изолированной областью действия?

Как я могу выставить метод из директивы? Я знаю, что я должен использовать атрибуты для данных, но я действительно хочу выставитьповедениенеданные, То, что может вызвать родительский контроллер.

Позволять'скажем, мой 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 определяется в дочерней области и не легко доступен для родителя.

В моем случае, я думаю, что загрязнение родительской области - плохая идея, и я действительно хотел бы избежать этого.

Итак, как я могу представить функцию из директивы на родительский контроллер? Или: Как я могу вызвать метод по директиве из родительского контроллера?

Ответы на вопрос(5)

Ваш ответ на вопрос