রেন্ডারার অ্যাঙ্গুলার ৪.০.০-আরসি .১ এ অবহেলা করা হয়েছে, নীচের আপডেটটি পড়ুন
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। দেখুন ভঙ্গ পরিবর্তন ।
RendererV2listenGlobalবৈশ্বিক ইভেন্টগুলির জন্য আর কোনও কার্য নেই (ডকুমেন্ট, দেহ, উইন্ডো)। এটিতে কেবল একটি 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