我有一个承诺,我需要在$scope
中调用一个函数。如果我在then
之外调用该函数它可以工作但实际上我需要在承诺解决之后在then
内调用它。不幸的是,$scope
在该阶段无法使用
traverseTree(items).then(function(data){
$scope.$apply(function () {
$scope.myArray.push(data);
});
});
我没有找到解决此问题的方法,实际上我甚至不知道在线搜索解决方案时使用的关键字
修改
此处为stacktrace,异常在$scope.$apply
$scope
看起来在then
答案 0 :(得分:2)
您的$scope
可以访问,但问题是您正在尝试手动运行摘要周期,因此只需删除应用,就可以了。你应该像这样
traverseTree(items).then(function(data){
$scope.myArray.push(data);
});
答案 1 :(得分:1)
实际上,您错误是因为您正在尝试运行新的摘要周期而另一个已经在执行。
如果你没有在Angular的范围之外做任何事情,你不需要手动调用$ apply,Angular会自动为你做。
有关详细信息,请take a look at this other question。