উত্তর
$scope.$watch('$viewContentLoaded',
function() {
$timeout(function() {
//do something
},0);
});
আমি পরীক্ষিত বেশিরভাগ পরিস্থিতিতেই একমাত্র কাজ করে। একটি টেমপ্লেট থেকে এইচটিএমএল তৈরি করা 4 টি উপাদান সহ একটি নমুনা পৃষ্ঠায়, ইভেন্টগুলির ক্রম ছিল
$document ready
$onInit
$postLink
(and these 3 were repeated 3 more times in the same order for the other 3 components)
$viewContentLoaded (repeated 3 more times)
$timeout execution (repeated 3 more times)
সুতরাং একটি ডকুমেন্ট.ডিয়ার () বেশিরভাগ ক্ষেত্রেই অকেজো, যেহেতু কৌণিকভাবে ডোম নির্মিত হচ্ছে কোথাও প্রস্তুত কাছাকাছি থাকতে পারে না।
তবে আরও মজার বিষয়, এমনকি $ ভিউকন্টেন্টলয়েড বহিস্কারের পরেও আগ্রহের উপাদানটি এখনও খুঁজে পাওয়া যায়নি।
$ সময়সীমা নির্বাহের পরে কেবল এটিই পাওয়া গেল। মনে রাখবেন যে $ টাইমআউটটি 0 এর মান হলেও এটি কার্যকর হওয়ার আগে প্রায় 200 মিলিসেকেন্ড বিস্তৃত হয়েছিল, এটি সূচিত করে যে এই থ্রেডটি বেশ কিছু সময়ের জন্য বন্ধ ছিল, সম্ভবত DOM এর একটি মূল থ্রেডে কৌনিক টেম্পলেট যুক্ত ছিল। প্রথম $ ডকুমেন্ট.ডিআর () থেকে শেষ $ সময়সীমা নির্বাহের মোট সময় ছিল প্রায় 500 মিলিসেকেন্ড।
একটি অসাধারণ ক্ষেত্রে যেখানে কোনও উপাদানটির মান নির্ধারণ করা হয়েছিল এবং তারপরে পাঠ্য () মানটি পরে $ সময়সাপেক্ষে পরিবর্তন করা হয়েছিল, সময় না হওয়া পর্যন্ত worked টাইমআউট মানটি বাড়ানো হয়েছিল (যদিও উপাদানটি সময়সীমার সময় খুঁজে পাওয়া যেত )। তৃতীয় পক্ষের উপাদানটির মধ্যে কিছুটা অ্যাসিঙ্কের কারণে পর্যাপ্ত সময় না পারা অবধি পাঠ্যের উপরে একটি মানকে প্রাধান্য দেওয়া হয়েছিল। আরেকটি সম্ভাবনা হ'ল $ সুযোগ $ evalAsync, কিন্তু চেষ্টা করা হয়নি।
আমি এখনও সেই একটি ইভেন্টের সন্ধান করছি যা আমাকে জানিয়েছে যে ডম সম্পূর্ণরূপে স্থির হয়ে গেছে এবং যাতে পরিচালনা করা যায় যাতে সমস্ত ক্ষেত্রে কাজ হয়। এখনও পর্যন্ত একটি স্বেচ্ছাসেবী সময়সীমার মান প্রয়োজনীয়, সর্বোপরি এটি একটি ক্লডেজ যা ধীর ব্রাউজারে কাজ না করে। আমি লাইভকুয়ারির মতো জিকুয়ের বিকল্পগুলি চেষ্টা করেছি এবং প্রকাশ করতে / সাবস্ক্রাইব করে যা কাজ করতে পারে, তবে অবশ্যই খাঁটি কৌণিক নয়।