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