如何调用一个函数从控制器指令范围 [英] How to call a function on a directive scope from the controller
本文介绍了如何调用一个函数从控制器指令范围的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经搜查所有在互联网上并不能找到一个解决办法请大家帮忙!
指令('菜单',函数(){
返回{
链接:功能(范围,元素,ATTRS){
scope.foo =功能(){
警报('测试!');
}
},
控制器:函数($范围){
$ scope.foo();
}
}
});
解决方案
延迟调用富()
使用 $ evalAsync()
:
控制器:功能($范围){
$范围。$ evalAsync(函数(){
$ scope.foo();
的console.log($范围内);
});
}
<大骨节病> 小提琴 骨节病>
您也可以使用 $超时()
而不是 $ evalAsync()
。两者都允许链接功能首先执行。
I've searched all over the internet and cannot find a solution please help!
directive('menu',function(){
return{
link : function(scope,element,attrs){
scope.foo = function(){
alert('test!');
}
},
controller : function($scope){
$scope.foo();
}
}
});
解决方案
Delay the call to foo()
using $evalAsync()
:
controller : function($scope){
$scope.$evalAsync(function() {
$scope.foo();
console.log($scope);
});
}
You could also use $timeout()
instead of $evalAsync()
. Both allow the link function to execute first.
这篇关于如何调用一个函数从控制器指令范围的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文