我是Angular JS的新手,所以可能我的问题很简单,但实际上我还没有找到解决方案。
我想知道是否可以从外部控制器访问函数(在指令中的链接函数内)。我正在使用一个控制指令所需的一些变量的指令,我需要从控制器访问其中一个。我试图在指令中创建一个函数:
scope.testArray = [{id=1, text="test1"},{id=2, text="test2"}];
scope.getTestArray = function () {
return scope.testArray()
};
从我的控制器我想这样称呼它:
var testArray = scope.getTestArray()
但是它说元素(范围)的getTestArray不存在。我假设这是因为从控制器中看不到指令中范围变量的变化。那么,有没有办法实现我想做的事情?
感谢你的帮助,你可以给我
答案 0 :(得分:1)
在指令加载之前,您的控制器会被实例化。您可以通过执行以下操作来简单地延迟对指令函数的调用:
$timeout(function(){
var testArray = $scope.getTestArray()
},1000);
或者你不需要将它包装在一个函数中。只需这样做:
$timeout(function(){
var testArray = $scope.testArray;
},1000);