Angularjs 我很难运行$apply
我有一个元素列表,当我点击其中一个元素时,我填充模板,然后将其复制到新的DIV,我得到一个空模板,当我使用Angularjs 我很难运行$apply,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我有一个元素列表,当我点击其中一个元素时,我填充模板,然后将其复制到新的DIV,我得到一个空模板,当我使用$scope.$apply()时,我得到一个错误 $scope.tache_list.forEach(element => { $scope.var1 = element; $scope.$apply(); $('#div2').append($("#div1").html()); }); 我得到错误$rootScope:inprog,我能做什么 请查看以下有关$
$scope.$apply()
时,我得到一个错误
$scope.tache_list.forEach(element => {
$scope.var1 = element;
$scope.$apply();
$('#div2').append($("#div1").html());
});
我得到错误$rootScope:inprog
,我能做什么
请查看以下有关$digest和$apply的内容
您的
inprogress
错误是因为您从$apply块内部调用了$apply()
。您只需从外部调用$apply,即可开始新一轮的角度代码。因此,如果您的forEach中有一个setTimeout()
,您可以在setTimeout中调用$apply,告诉angular您希望更新它。请查看以下关于$digest和$apply的内容
您的inprogress
错误是因为您从$apply块内部调用了$apply()
。您只需从外部调用$apply,即可开始新一轮的角度代码。因此,如果您的forEach中有一个setTimeout()
,您可以在setTimeout中调用$apply,告诉angular您希望更新它。包装您的$scope。$apply调用在$timeout函数中
$timeout(function(){
$scope.$apply()
});
原因:摘要循环将移动到事件循环,并在现有循环完成时执行。将$scope包装起来。$timeout函数中的$apply调用
$timeout(function(){
$scope.$apply()
});
原因:摘要循环将移动到事件循环,并在现有循环完成时执行。我通过
$timeout(function(){
$scope.$apply()
})
.then(function(){
...
});
谢谢大家。我通过
$timeout(function(){
$scope.$apply()
})
.then(function(){
...
});
谢谢大家。请注意调用$scope.$apply()
自己检查此链接AngularJS中的这种DOM操作是不明智的。为什么要使用$scope.$apply()代码>?您是否正在尝试修复一些其他问题,例如附加的代码不起作用?此代码有很多错误。首先,如果您发现自己需要$scope.$apply()
,那么您可能做错了什么。其次,您似乎将JQuery与Angular混合在一起,但效果不好,这可能导致您认为需要使用$apply()
。第三,现在还不清楚#div2
或#div1
中的内容,或者它们与您试图操纵的元素的关系,但是如果您试图使用#div1
作为var1
的占位符,以便您可以在JQuery调用中使用它,这将永远不会起作用,你可能会考虑发布你正在使用的数据的例子和你想要达到的结果,所以我们可以帮助你编写一个正确的算法,它是盎格鲁JS友好的。请注意调用<代码> $范围。$Apple()
自己检查这个链接AngularJS内部的这种DOM操作是不明智的。为什么要使用$scope.$apply()代码>?您是否正在尝试修复一些其他问题,例如附加的代码不起作用?此代码有很多错误。首先,如果您发现自己需要$scope.$apply()
,那么您可能做错了什么。其次,您似乎将JQuery与Angular混合在一起,但效果不好,这可能导致您认为需要使用$apply()
。第三,现在还不清楚#div2
或#div1
中的内容,或者它们与您试图操纵的元素的关系,但是如果您试图使用#div1
作为var1
的占位符,以便您可以在JQuery调用中使用它,这将永远不会起作用,你可能会考虑发布你正在使用的数据的例子和你想要达到的结果,所以我们可以帮助你编写一个合适的Angularjs友好的算法。虽然这可能是有效的,但是代码是完全混乱的,并且永远不需要<代码> $范围。$Apple()
首先。使用$timeout$scope.$apply
是一个更深层次问题的症状。应该小心调查OP认为这有必要的原因。我同意。第一个目标应该是,在angularjs上下文中编写代码。上述解决方案只是一种变通方法。我们应该避免手动使用摘要循环。虽然这可能有效,但所讨论的代码是一团乱麻,一开始就不应该需要$scope.$apply()
。使用$timeout$scope.$apply
是一个更深层次问题的症状。应该小心调查OP认为这有必要的原因。我同意。第一个目标应该是,在angularjs上下文中编写代码。上述解决方案只是一种变通方法。我们应该避免手动使用摘要循环。使用setTimeout$scope.$apply
是一个更深层次问题的症状。应注意调查OP认为有必要这样做的原因。@georgeawg我不是说他需要调用setTimeout
,因为您需要使用$timeout
,它将$apply
包装在调用周围,我刚刚指出,如果使用的是超出de angular
的转弯和设置$scope变量,则需要自己调用$apply或将代码包装在$apply块中。我也不明白OP为什么使用$scope。$apply()使用setTimeout$scope。$apply是一个更深层次问题的症状。应注意调查OP认为有必要这样做的原因。@georgeawg我不是说他需要调用setTimeout
,因为您需要使用$timeout
,它将$apply
包装在调用周围,我刚刚指出,如果使用的是超出de angular
的转弯和设置$scope变量,则需要自己调用$apply或将代码包装在$apply块中。我也不明白OP为什么使用$scope.$apply()