$ scope范围内无法访问。然后

时间:2017-11-30 11:50:33

标签: javascript angularjs

我有一个承诺,我需要在$scope中调用一个函数。如果我在then之外调用该函数它可以工作但实际上我需要在承诺解决之后在then内调用它。不幸的是,$scope在该阶段无法使用

traverseTree(items).then(function(data){
   $scope.$apply(function () {
       $scope.myArray.push(data);
   });
});

我没有找到解决此问题的方法,实际上我甚至不知道在线搜索解决方案时使用的关键字

修改

此处为stacktrace,异常在$scope.$apply

处抛出

enter image description here

$scope看起来在then

内有正确的价值

2 个答案:

答案 0 :(得分:2)

您的$scope可以访问,但问题是您正在尝试手动运行摘要周期,因此只需删除应用,就可以了。你应该像这样

traverseTree(items).then(function(data){
   $scope.myArray.push(data);
});

答案 1 :(得分:1)

实际上,您错误是因为您正在尝试运行新的摘要周期而另一个已经在执行。

如果你没有在Angular的范围之外做任何事情,你不需要手动调用$ apply,Angular会自动为你做。

有关详细信息,请take a look at this other question