রেন্ডারার অ্যাঙ্গুলার ৪.০.০-আরসি .১ এ অবহেলা করা হয়েছে, নীচের আপডেটটি পড়ুন
Angular2 উপায় ব্যবহার করা listen
বা listenGlobal
থেকে পেশকারী
উদাহরণস্বরূপ, আপনি যদি কোনও কম্পোনেন্টে ক্লিক ইভেন্ট যুক্ত করতে চান তবে আপনাকে রেন্ডারার এবং এলিমেন্টরিফ ব্যবহার করতে হবে (এটি আপনাকে ভিউচিল্ড ব্যবহার করার বিকল্প দেয় বা এটি পুনরুদ্ধার করে এমন কিছু দেয় nativeElement
)
constructor(elementRef: ElementRef, renderer: Renderer) {
// Listen to click events in the component
renderer.listen(elementRef.nativeElement, 'click', (event) => {
// Do something with 'event'
})
);
আপনি ব্যবহার করতে পারেন listenGlobal
যা আপনার কাছে অ্যাক্সেস করার অনুমতি দেবে document
, body
ইত্যাদি
renderer.listenGlobal('document', 'click', (event) => {
// Do something with 'event'
});
মনে রাখবেন যে বিটা ২. উভয় থেকেই listen
এবং listenGlobal
শ্রোতাদের অপসারণ করার জন্য একটি ফাংশন ফিরে আসুন ( বিটা ২ এর চেঞ্জলগ থেকে পরিবর্তনগুলি ভাঙ্গা দেখুন )। এটি বড় অ্যাপ্লিকেশনগুলিতে মেমরি ফাঁস এড়ানোর জন্য ( # 6686 দেখুন )।
সুতরাং শ্রোতা আমরা পরিবর্তনশীল যোগ আমরা দায়িত্ব অর্পণ আবশ্যক মুছে ফেলার জন্য listen
বা listenGlobal
একটি পরিবর্তনশীল যে ফাংশন ফিরে রাখা হবে, এবং তারপর আমরা এটা চালানো।
// listenFunc will hold the function returned by "renderer.listen"
listenFunc: Function;
// globalListenFunc will hold the function returned by "renderer.listenGlobal"
globalListenFunc: Function;
constructor(elementRef: ElementRef, renderer: Renderer) {
// We cache the function "listen" returns
this.listenFunc = renderer.listen(elementRef.nativeElement, 'click', (event) => {
// Do something with 'event'
});
// We cache the function "listenGlobal" returns
this.globalListenFunc = renderer.listenGlobal('document', 'click', (event) => {
// Do something with 'event'
});
}
ngOnDestroy() {
// We execute both functions to remove the respectives listeners
// Removes "listen" listener
this.listenFunc();
// Removs "listenGlobal" listener
this.globalListenFunc();
}
এখানে কাজ করার একটি উদাহরণ সহ এক জনসাধারণ k উদাহরণস্বরূপ ব্যবহার রয়েছে listen
এবং listenGlobal
।
কৌণিক 4.0.0-rc.1 + সহ রেন্ডারারভি 2 ব্যবহার করে (4.0.0-আরসি.3 থেকে রেন্ডারার 2)
25/02/2017 : Renderer
অবচিত করা হয়েছে, এখন আমাদের ব্যবহার করা উচিত RendererV2
(নীচের লাইনটি দেখুন)। দেখুন কমিট ।
10/03/2017 : এ RendererV2
নতুন নামকরণ করা হয়েছিল Renderer2
। দেখুন ভঙ্গ পরিবর্তন ।
RendererV2
listenGlobal
বৈশ্বিক ইভেন্টগুলির জন্য আর কোনও কার্য নেই (ডকুমেন্ট, দেহ, উইন্ডো)। এটিতে কেবল একটি listen
ফাংশন রয়েছে যা উভয় কার্যকারিতা অর্জন করে।
রেফারেন্সের জন্য, আমি ডম রেন্ডারার বাস্তবায়নের উত্স কোডটি অনুলিপি করে আটক করছি কারণ এটি পরিবর্তন হতে পারে (হ্যাঁ, এটি কৌনিক!)।
listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):
() => void {
if (typeof target === 'string') {
return <() => void>this.eventManager.addGlobalEventListener(
target, event, decoratePreventDefault(callback));
}
return <() => void>this.eventManager.addEventListener(
target, event, decoratePreventDefault(callback)) as() => void;
}
আপনি দেখতে পাচ্ছেন, এখন এটি যাচাই করে যদি আমরা কোনও স্ট্রিং (ডকুমেন্ট, দেহ বা উইন্ডো) পাস করি, তবে এটি কোনও অভ্যন্তরীণ addGlobalEventListener
ফাংশন ব্যবহার করবে । অন্য যে কোনও ক্ষেত্রে, আমরা যখন কোনও উপাদান (নেটিমেটমেন্ট) পাস করি তখন এটি একটি সাধারণ ব্যবহার করবেaddEventListener
শ্রোতাদের অপসারণ করতে এটি Renderer
কৌনিক ২.x এর সাথে একই ছিল। listen
একটি ফাংশন প্রদান করে, তারপরে সেই ফাংশনটি কল করে।
উদাহরণ
// Add listeners
let global = this.renderer.listen('document', 'click', (evt) => {
console.log('Clicking the document', evt);
})
let simple = this.renderer.listen(this.myButton.nativeElement, 'click', (evt) => {
console.log('Clicking the button', evt);
});
// Remove listeners
global();
simple();
রেন্ডারারভি 2 ব্যবহার করে কৌণিক 4.0.0- rc.1 সহ plnkr
plnkr সঙ্গে কৌণিক 4.0.0-rc.3 ব্যবহার Renderer2