我希望在我的客户指令中捕获“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
答案 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/