এটি একেবারে অসীম লুপ না হওয়ার সম্ভাবনাও রয়েছে। 10 পুনরাবৃত্তিগুলি কোনও পরিমাণের নিশ্চিততার সাথে এই সিদ্ধান্তে নেওয়ার জন্য পর্যাপ্ত পরিমাণে নয়। তাই বন্য-হংসের তাড়া করার আগে প্রথমে এই সম্ভাবনাটি উড়িয়ে দেওয়ার পরামর্শ দেওয়া যেতে পারে।
এটি করার সবচেয়ে সহজ পদ্ধতিটি হ'ল ডাইজেস্ট লুপের সংখ্যাকে আরও বড় সংখ্যায় বাড়িয়ে দিচ্ছে, যা module.configপদ্ধতিটি ব্যবহার করে $rootScopeProvider.digestTtl(limit)পদ্ধতিতে করা যেতে পারে । যদি infdigত্রুটি আর প্রদর্শিত হচ্ছে না আপনি কেবল কিছু পর্যাপ্ত জটিল আপডেট লজিক আছে।
আপনি (অর্থাত নতুন ডাইজেস্ট লুপ উপর নির্ভর না শুরু করার) ব্যবহার পুনরাবৃত্ত সমাধানের জন্য অনুসন্ধান করতে পারেন আপনি রিকার্সিভ ঘড়ির উপর নির্ভর ডেটা বা মতামত গড়ে তুলতে পারেন while, forবা Array.forEach। কখনও কখনও কাঠামোটি কেবলমাত্র খুব ঘৃণ্য হয় এবং এমনকি পুনরাবৃত্ত হয় না, সম্ভবত সীমা বাড়াতে ব্যতীত সেই ক্ষেত্রে খুব বেশি কিছু করার দরকার নেই।
ত্রুটি ডিবাগ করার আরেকটি পদ্ধতি হজম ডেটা দেখে। আপনি যদি JSON প্রিন্ট করেন তবে আপনি একটি অ্যারে পাবেন। প্রতিটি শীর্ষ স্তরের এন্ট্রি একটি পুনরাবৃত্তি প্রতিনিধিত্ব করে, প্রতিটি পুনরাবৃত্তি ঘড়ির এন্ট্রিগুলির একটি তালিকা নিয়ে গঠিত।
উদাহরণস্বরূপ, আপনার যদি এমন কোনও সম্পত্তি থাকে যা $watchনিজেই পরিবর্তিত হয় তবে এটি সহজেই মূল্য অপরিবর্তিত হয় তা দেখতে পাওয়া যায়:
$scope.vm.value1 = true;
$scope.$watch("vm.value1", function(newValue)
{
$scope.vm.value1 = !newValue;
});
[
[
{
"msg":"vm.value1",
"newVal":true,
"oldVal":false
}
],
[
{
"msg":"vm.value1",
"newVal":false,
"oldVal":true
}
],
[
{
"msg":"vm.value1",
"newVal":true,
"oldVal":false
}
],
[
{
"msg":"vm.value1",
"newVal":false,
"oldVal":true
}
],
[
{
"msg":"vm.value1",
"newVal":true,
"oldVal":false
}
]
]
অবশ্যই বৃহত্তর প্রকল্পে এটি এতটা সহজ নাও হতে পারে, বিশেষত যেহেতু ঘড়ির কোনও ঘর্ষণ msgহয় "fn: regularInterceptedExpression"তবে ক্ষেত্রটির প্রায়শই মান থাকে {{ }}।
সমস্যাটির উত্স খুঁজে পেতে এইচটিএমএল কেটে দেওয়ার মতো ইতিমধ্যে উল্লিখিত পদ্ধতিগুলি অবশ্যই সহায়ক।