Angular JS - 在外部Controller中调用指令函数

时间:2013-08-23 07:51:23

标签: javascript angularjs angularjs-directive angularjs-scope

我是Angular JS的新手,所以可能我的问题很简单,但实际上我还没有找到解决方案。

我想知道是否可以从外部控制器访问函数(在指令中的链接函数内)。我正在使用一个控制指令所需的一些变量的指令,我需要从控制器访问其中一个。我试图在指令中创建一个函数:

    scope.testArray = [{id=1, text="test1"},{id=2, text="test2"}];        
    scope.getTestArray = function () {
          return scope.testArray()
    };

从我的控制器我想这样称呼它:

    var testArray = scope.getTestArray()

但是它说元素(范围)的getTestArray不存在。我假设这是因为从控制器中看不到指令中范围变量的变化。那么,有没有办法实现我想做的事情?

感谢你的帮助,你可以给我

1 个答案:

答案 0 :(得分:1)

在指令加载之前,您的控制器会被实例化。您可以通过执行以下操作来简单地延迟对指令函数的调用:

$timeout(function(){
    var testArray = $scope.getTestArray()
},1000);

或者你不需要将它包装在一个函数中。只需这样做:

$timeout(function(){
    var testArray = $scope.testArray;
},1000);