在调查此错误后,我发现它来自这段代码,但我不知道为什么以及如何解决它。
$scope.mindate = function() {
var thisDay = new Date();
var priorDate = new Date().setDate(thisDay.getDate() - 90);
return new Date(priorDate);
};
答案 0 :(得分:0)
角度脏检查迭代次数最多为10.如果您的代码在完成脏检查之前经常更改它将引发错误。 PS:请发布完整的代码。
答案 1 :(得分:0)
这是因为你总是返回一个“新的Date()”。
当您为模型赋值时,angular将检测更改并触发摘要周期以应用所有更改。一旦完成第一个摘要周期,它将再次检查所有内容以检查是否有任何更改,如果没有,它将停止并等待下一个更改。如果是,它将经历另一个摘要周期。
在你的情况下,因为你总是返回一个新的Date()对象,角度总会检测到每个循环后发生的变化,并且在10个循环之后会有一个硬停止,之后角度就像:“你好,不要跑陷入无限循环。“你得到了你现在得到的错误。
答案 2 :(得分:0)
尝试在html https://toddmotto.com/angular-one-time-binding-syntax/
中使用bind-once答案 3 :(得分:0)
你可以缓存它:
$scope.mindate = function() {
if(!$scope.mindateCached){
var thisDay = new Date();
var priorDate = new Date().setDate(thisDay.getDate() - 90);
$scope.mindateCached = new Date(priorDate);
}
return $scope.mindateCached;
};