কখনও কখনও $scope.$applyআমার কোডটি ব্যবহার করা দরকার এবং কখনও কখনও এটি "ডাইজেস্ট ইতিমধ্যে প্রগতিতে" ত্রুটি ছুড়ে দেয়। সুতরাং আমি এর আশেপাশে একটি উপায় সন্ধান করতে শুরু করেছি এবং এই প্রশ্নটি পেয়েছি: AngularJS: ত্রুটি প্রতিরোধ করুন already স্কোপ $ কল করার সময় ইতিমধ্যে প্রগতিতে ডাইজেস্ট $ প্রয়োগ করুন () । তবে মন্তব্যে (এবং কৌনিক উইকিতে) আপনি পড়তে পারেন:
(! $ সুযোগ। $$ পর্ব) $ সুযোগ। $ প্রয়োগ () প্রয়োগ করবেন না, এটির অর্থ আপনার $ সুযোগ $ $ প্রয়োগ () কল স্ট্যাকের পর্যাপ্ত পরিমাণে বেশি নয়।
সুতরাং এখন আমার দুটি প্রশ্ন আছে:
- কেন এটি ঠিক একটি বিরোধী নিদর্শন?
- আমি কীভাবে নিরাপদে $ সুযোগ।। প্রয়োগ করতে পারি?
"ডাইজেস্ট ইতিমধ্যে প্রগতিতে" রোধ করতে অন্য একটি "সমাধান" ত্রুটিটি $ টাইমআউটটি ব্যবহার করছে বলে মনে হচ্ছে:
$timeout(function() {
//...
});
এটাই কি পথ? এটা কি নিরাপদ? সুতরাং আসল প্রশ্নটি এখানে: আমি কীভাবে "ইতিমধ্যে প্রক্রিয়াধীন ডাইজেস্ট" ত্রুটিটিকে সম্পূর্ণভাবে দূর করতে পারি ?
পিএস: আমি কেবল $ স্কোপ using ব্যবহার করছি non অ-কৌণিক কলস ব্যাকগুলিতে প্রয়োগ করুন যা সিঙ্ক্রোনাস নয়। (যতদূর আমি জানি এগুলি এমন পরিস্থিতিতে রয়েছে যেখানে আপনার অবশ্যই ব্যবহার করা উচিত $ সুযোগ $ আপনি যদি নিজের পরিবর্তনগুলি প্রয়োগ করতে চান তবে প্রয়োগ করুন)
scopeকৌনিক থেকে বা কৌনিকের বাইরে থেকে চালিত হন। সুতরাং এটি অনুসারে আপনি সর্বদা জানেন, যদি আপনার কল করার দরকার হয়scope.$applyবা না। এবং যদি আপনি উভয় কৌনিক / অ-কৌণিকscopeম্যানিপুলেশন জন্য একই কোড ব্যবহার করছেন, আপনি এটি ভুল করছেন, এটি সর্বদা পৃথক করা উচিত ... সুতরাং আপনি যদি এমন কোনও ক্ষেত্রে যাচাই করতে চান তবেscope.$$phaseআপনার কোডটি নয় একটি সঠিক উপায়ে ডিজাইন করা হয়েছে এবং এটি করার জন্য সর্বদা একটি উপায় রয়েছে 'সঠিক উপায়ে'