繁体   English   中英

将角度指令模板绑定到事件

[英]Bind angular directive template to a event

我有一个带有这样模板的角度指令

<Button id="testBtn">Test me<button>

然后我有一个指令控制器,我有指令的API函数。 我现在需要将一个事件传递给单击按钮的调用模块。所以我可以定义在基本应用程序中单击按钮时要执行的操作。

这样的东西必须放在baseApp控制器中。

$scope.myDirective = {
    btnClick:function(){
     //define the function here
    }
}

我的html模板看起来像这样

<my-simpledirective='myDirective'></my-simpledirective>

我已经到了可以在$ scope.myDirective = {}中声明我的配置的部分,但是我如何在那里进行事件定义?

仅供参考:这是kendoUI的做法,希望以同样的方式进行。

这样的事情也是可以接受的

<my-simpledirective='myDirective' btn-clicked="myCustomClick"></my-simpledirective>

然后在baseApp控制器中

$scope.myCustomClick = function(){
 //called when click event received
}

您可以从控制器设置范围双向绑定到配置对象:

app.directive('mySimpledirective', function() {
    return {
        scope: {
            config: '='
        },
        template: '<Button id="testBtn">{{config.label}}</button>',
        link: function(scope, element) {
            element.on('click', function(e) {
                scope.config.btnClick(e);
            });
        }
    };
});

并在模板中传递如下:

<my-simpledirective config='myDirective'></my-simpledirective>

演示: http //plnkr.co/edit/ue8EX9OR17iQxIi1ekco?p=preview

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM