【问题标题】:Angularjs: How to catch "show event" in custom directive?Angularjs:如何在自定义指令中捕获“显示事件”?
【发布时间】:2016-03-21 21:16:08
【问题描述】:

我想在我的客户指令中捕获“显示事件”,例如 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

【问题讨论】:

    标签: angularjs angularjs-directive


    【解决方案1】:

    更改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/

    【讨论】:

    • 这个解决方案依赖于指令之外的代码。我正在寻找嵌入指令代码的解决方案。
    • 感谢您的回答和链接。至今没有成功。这似乎比我发布问题时想象的还要困难。
    猜你喜欢
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 2018-03-24
    相关资源
    最近更新 更多