angularjs-directive – 在属性中指定的angularjs指令调用函数,
发布时间:2020-12-17 09:11:45 所属栏目:安全 来源:网络整理
导读:我想创建一个链接到属性的指令。该属性指定应在作用域上调用的函数。但我也想传递一个参数到在链接函数内确定的函数。 div my-method='theMethodToBeCalled'/div 在链接函数中,我绑定到一个jQuery事件,它传递一个参数,我需要传递给函数: app.directive("
我想创建一个链接到属性的指令。该属性指定应在作用域上调用的函数。但我也想传递一个参数到在链接函数内确定的函数。
<div my-method='theMethodToBeCalled'></div> 在链接函数中,我绑定到一个jQuery事件,它传递一个参数,我需要传递给函数: app.directive("myMethod",function($parse) { restrict:'A',link:function(scope,element,attrs) { var expressionHandler = $parse(attrs.myMethod); $(element).on('theEvent',function( e,rowid ) { id = // some function called to determine id based on rowid scope.$apply(function() {expressionHandler(id);}); } } } app.controller("myController",function($scope) { $scope.theMethodToBeCalled = function(id) { alert(id); }; } 没有传递id,我可以得到它的工作,但是一旦我尝试传递一个参数,该函数不再被调用
Marko的
solution works well。
与推荐的Angular方法(如treeface的plunkr所示)不同的是使用一个不需要定义expressionHandler的回调表达式。在marko的示例更改: 在模板中 <div my-method="theMethodToBeCalled(myParam)"></div> 在指令链接功能 $(element).click(function( e,rowid ) { scope.method({myParam: id}); }); 这与Marko的解决方案相比有一个缺点 – 在第一次加载时,TheMethodToBeCalled函数将被调用myParam === undefined。 工作示范可在@treeface Plunker找到 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |