2016-12-21 3 views
2

После изучения этой ошибки я обнаружил, что это происходит из этого фрагмента кода, но я не могу понять, почему и как его исправить.

$scope.mindate = function() { 
    var thisDay = new Date(); 
    var priorDate = new Date().setDate(thisDay.getDate() - 90); 
    return new Date(priorDate); 
}; 
+1

эта ошибка, когда цикл дайджеста выполняется рекурсивно, это обычно происходит, когда одно изменение вызывает такое же изменение опять и опять. вам нужно будет добавить еще код и разметку здесь, чтобы попасть на вопрос – gaurav5430

ответ

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; 
}; 
0

Угловая грязная проверка итерация не более 10. Если ваш код часто меняется до завершения проверки загрязнен он будет бросать ошибку. PS: Пожалуйста, напишите полный код.

0

Это потому, что вы всегда возвращаете новую дату().

Когда вы даете значение модели, угловое будет обнаруживать изменение и запускать цикл дайджеста, чтобы применить все изменения. Как только первый цикл дайджеста будет завершен, он снова пройдет все, чтобы проверить, не изменилось ли что-либо, если не остановится и дождитесь следующего изменения. Если да, то он пройдет еще один цикл дайджеста.

В вашем случае, поскольку вы всегда возвращаете новый объект Date(), угловой всегда будет обнаруживать что-то изменившееся после каждого отдельного цикла, и после 10 циклов происходит жесткая остановка, после которой будет угловой: «Вы, давайте не будем запустить в бесконечный цикл ». и вы получите ошибку, которую вы сейчас получаете.

+0

thx для вас ответ, так что вы предлагаете? – divo

+0

создайте отдельную функцию, которая устанавливает $ scope.mindate и только вызывает эту функцию, если вы хотите изменить символ. Если нужно только установить начальное значение, просто вызовите функцию в начале контроллера. –

Смежные вопросы