为了账号安全,请及时绑定邮箱和手机立即绑定

请教一个angularjs中在指令调用controller方法的问题

请教一个angularjs中在指令调用controller方法的问题

红颜莎娜 2019-04-16 20:27:22
有一个需求,需要在指令中调用指令所在controller里的方法,我举个简单的例子,代码如下:Documentcontroller和directive的代码如下:varapp=angular.module('myApp',[]);app.controller('myCtrl',function($scope){$scope.click=function(param){console.log(param);}}app.directive('myDir',function(){return{restrict:'AE',replace:true,template:'',scope:{myClick:'&'},link:function(scope,elem,attr){scope.inputClick=function(){scope.myClick("123");}}}});使用这种方式,倒是可以调用到controller里的click方法,但是参数没法传递过去,打印出来的param始终是undefined,是不是我这种调用方式压根就是错误的啊,那么如何应对这种需求呢,求大神指教,在线等,谢了!!!
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

你需要把scope.myClickparse成一个function,然后再调用它。
varfn=$parse(scope.myClick);//parseitasfunction
fn('123')//callthefunction.
你可以参照一个rightClickdirective的写法:
.directive("rightclick",['$parse',function($parse,$scope){
return{
restrict:'A',
transclude:true,
scope:{
'rightclick':'&rightclick'
},
link:function(scope,element,attrs){
element.bind('contextmenu',function(event){
varfn=$parse(scope.rightclick);//parseitasfunction
scope.$apply(function(){
event.stopPropagation();
event.preventDefault();
fn();
});
});
}
};
}])
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 384 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信