কোন অ্যাসিঙ্ক অ্যাকশনটি এনজিওজনকে ট্রিগার করে তা কীভাবে আবিষ্কার করবেন (যা পরিবর্তনের সনাক্তকরণে নেতৃত্ব দেয়)?


11

আপডেটগুলির স্ট্যাক ট্রেসের কোনও পরিবর্তন সর্বদা ফিরে আসে globalZoneAwareCallback । আপনি কীভাবে আবিষ্কার করবেন যে পরিবর্তনটি ট্রিগার করেছিল?

ডিবাগিংয়ের ক্ষেত্রে একটি পরিষ্কার ছবি রাখা ভাল।


বোঝাতে কি যত্ন?
ব্যবহারকারী 2167582

আপনার প্রশ্নটি সম্পূর্ণ অস্পষ্ট!
নিম্রেসাম

@ নিমেরসাম কিভাবে? আমি তার সাধারণ আমি একমত, কিন্তু অস্পষ্ট?
ব্যবহারকারী 2167582

2
আমি প্রশ্নটি আপডেট করেছি, আশা করি এটি আপনাকে সহায়তা করবে
স্টেপান সুভেরভ

উত্তর:


31

globalZoneAwareCallbackসমস্ত ইভেন্ট কলব্যাকগুলি সহ পরিচালনা করার জন্য জোনজেজে ঘোষণা করা একটি ফাংশন capture=false। (বিটিডব্লিউ, কারণ capture=trueআছে globalZoneAwareCaptureCallback)

এর অর্থ হ'ল যে কোনও ইভেন্ট শ্রোতা প্রথমে এই পদ্ধতিটি অনুসরণ করবেন। সেই শ্রোতা আপনার নিজের দ্বারা বা কোনও তৃতীয় পক্ষের লাইব্রেরি দ্বারা কৌণিক দ্বারা পৃষ্ঠায় যুক্ত হতে পারে।

আমরা কৌনিকটিতে ব্রাউজার ইভেন্টগুলি কীভাবে শুনতে পারি তার অনেকগুলি উপায় রয়েছে:

  • ব্রাউজার ইভেন্ট সাবস্ক্রাইব <element (event)="callback()">

  • @HostListener প্রসাধক @HostListener('event') callback() {}

  • Renderer2.listen পদ্ধতি

  • rxjs fromEvent

  • উপাদান সম্পত্তি বরাদ্দ করুন element.on<event> = callback

  • addEventListener পদ্ধতি element.addEventListener(event, callback)(এই পদ্ধতিটি উপরের আরও অনেক উপায়ে অভ্যন্তরীণভাবে ব্যবহৃত হয়)

একবার আপনার মধ্যে globalZoneAwareCallbackপ্রবেশের পরে সমস্ত জোন কার্যগুলিতে অ্যাক্সেস পাওয়া যায় যা ট্রিগার করা উচিত।

আসুন কল্পনা করুন যে আমরা clickইভেন্টটি শুনি document.body:

document.body.addEventListener('click', () => {
   // some code
});

একটি পরিষ্কার ছবি পেতে Chrome ডিভাইস খুলুন:

এখানে চিত্র বর্ণনা লিখুন

আমরা সবেমাত্র কী আবিষ্কার করেছি:

  • প্রতিটি জোন টাস্কে উত্স থাকে তাই এই পরিবর্তনটি ট্রিগার করে

  • লক্ষ্য সম্পত্তিটি দেখায় যে কোন বস্তুটি পরিবর্তনকে ট্রিগার করে

  • কলব্যাক সম্পত্তি আমাদের পরিবর্তনের হ্যান্ডলারের দিকে নিয়ে যেতে পারে

আসুন আরেকটি উদাহরণ বিবেচনা করুন এবং কৌনিক উপায় ব্যবহার করে ক্লিক ইভেন্ট যুক্ত করুন:

<h2 class="title" (click)="test()">Hello {{name}}</h2>

একবার আমরা সেই h2উপাদানটিতে ক্লিক করলে আমাদের নিম্নলিখিত পর্যবেক্ষণ করা উচিত:

এখানে চিত্র বর্ণনা লিখুন

আপনি অবাক হবেন যে এখন কলব্যাক সম্পত্তি আমাদের এখনই কলব্যাক এনে দেয়নি testবরং আমরা কিছুটা মোড়ক দেখিয়েছি @angular/platform-browser package। এবং অন্যান্য ক্ষেত্রেও পৃথক হতে পারে তবে জোনটাস্ক.সোর্স সম্পত্তি সাধারণত আপনার ক্ষেত্রে প্রয়োজন কেবল কারণ এটি আপনাকে পরিবর্তনের মূল কারণটি দেখায়


ধন্যবাদ স্যার, এটাই দুর্দান্ত উত্তর ছিল আমি আশা করি আমি অনুগ্রহ দ্বিগুণ করতে পারি।
ব্যবহারকারী 2167582
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.