Angularjs:如何在自定义指令中捕获“show event”?

时间:2016-03-21 21:16:09

标签: angularjs angularjs-directive

我希望在我的客户指令中捕获“show event”,例如ng-show

如何编写此类事件监听器?要听的事件的正确名称是什么?

<button ng-click="showMyDirective = !showMyDirective"></button>
<div my-directive="" ng-show="showMyDirective"></div>

更新

这是一个带有onclick事件的两种侦听器的示例指令。两者都有效。相同的方法不适用于show / onshow事件。

module.directive( 'myDirective' , function() {
    return { function (scope , element , attrs) {

        element.bind('click', function(){
            console.log('element.bind click');
        });

        var div = element[0];
        div.onclick = function(e){
            console.log('div.onclick');
        };

    }; // return
}); // myDirective

1 个答案:

答案 0 :(得分:0)

更改ng-click以调用函数:

<button ng-click="toggleMyDirective()"></button>

在你的控制器中,将你的“事件监听器”代码放入函数中:

$scope.toggleMyDirective = function() {
    $scope.showMyDirective = !$scope.showMyDirective;
    ... do other stuff here ...
}

编辑:让您的指令使用控制器和服务:

http://joelhooks.com/blog/2014/02/11/lets-make-full-ass-angularjs-directives/