在angular指令和调用对象函数上应用范围

时间:2016-07-22 12:18:31

标签: javascript angularjs

此代码工作正常并使用父控制器范围;

"<button type='button'  post-random-feed >Post review</button>"

.directive("postRandomFeed",['config',function(){
        return function(scope,element.attrs){ 

                element.bind("click", function(){
                    scope.name ="henry";
                     console.log(element);
                });



    }
}]);

我的问题是我想定义一个独立的范围并从指令返回一个对象而不是一个函数。这是我的代码

"<button type='button'  post-random-feed >Post review</button>"

.directive("postRandomFeed",['config',function(){
        return { 

            restrict :"A",

            scope : {

                    },

            irony : function(element, attrs)
            {   
                element.bind("click", function(){
                     console.log(element);
                });


            }
    };
}]);

如何调用反讽函数以便元素注册click事件任何错误请更正我。谢谢

1 个答案:

答案 0 :(得分:0)

您可以向控制器注册回调:

HTML:

<button type='button'  post-random-feed on-irony="onControllerFn">Post review</button>

指令:

.directive("postRandomFeed",['config',function(){
        return { 
            restrict :"A",
            scope : {},
            link : function(scope, element, attrs) {   
                $timeout(function () {
                   scope.$emit(attr.onIrony);
                });
            });

        }
    };
}]);

在控制器中你可以这样做:

$scope.$on('onControllerFn', function(event) {
    // your code here
});