আপনি এই অফিসিয়াল ডক্স পরীক্ষা করেছেন?
হোস্টলিস্টনার - একটি হোস্ট শ্রোতা ঘোষণা করে। হোস্ট উপাদান যখন নির্দিষ্ট ইভেন্টটি নির্গত করে তখন কৌণিক সজ্জিত পদ্ধতিতে ডাকে।
@HostListener
- হোস্ট উপাদান দ্বারা নির্ধারিত ইভেন্টটি শোনাবে যা ঘোষণা করা হয়েছে @HostListener
।
হোস্টবাইন্ডিং - হোস্ট প্রপার্টি বাইন্ডিং ঘোষণা করে। কৌণিক পরিবর্তন সনাক্তকরণের সময় স্বয়ংক্রিয়ভাবে হোস্ট সম্পত্তি সম্পর্কিত বাইন্ডিংগুলি পরীক্ষা করে। যদি কোনও বাঁধাই পরিবর্তন হয় তবে এটি নির্দেশের হোস্ট উপাদানটি আপডেট করবে।
@HostBinding
- হোস্ট উপাদানটির সাথে সম্পত্তি আবদ্ধ করবে, যদি একটি বাধ্যবাধকতা পরিবর্তন হয় HostBinding
তবে হোস্ট উপাদানটি আপডেট করবে।
দ্রষ্টব্য: উভয় লিঙ্কই সম্প্রতি সরিয়ে ফেলা হয়েছে। লিঙ্কগুলি ফিরে না আসা পর্যন্ত স্টাইল গাইডের " হোস্টবাইন্ডিং-হোস্টলিস্টিং " অংশটি কার্যকর বিকল্প হতে পারে।
এর অর্থ কী তা চিত্রিত করতে এখানে একটি সাধারণ কোড উদাহরণ রয়েছে:
ডেমো: প্লামকারে এখানে ডেমো লাইভ রয়েছে - "@ হোস্টলিস্টনার এবং @ হোস্টবাইন্ডিং সম্পর্কে একটি সাধারণ উদাহরণ"
- এই উদাহরণটি কোনও
role
সম্পত্তি - @HostBinding
হোস্টের উপাদানটির
সাথে ঘোষিত - বেঁধে দেয়
- পুনরাহ্বান যে
role
একটি বৈশিষ্ট্য হল, আমরা ব্যবহার করছি, যেহেতু attr.role
।
<p myDir>
<p mydir="" role="admin">
আপনি যখন এটি বিকাশকারী সরঞ্জামগুলিতে দেখেন তখন হয়ে যায় ।
- এরপরে প্রতিটি ক্লিকের সাথে পরিবর্তিত হয়ে
উপাদানটির হোস্ট উপাদানটির সাথে সংযুক্ত,
onClick
ঘোষিত ইভেন্টটি শোনে @HostListener
srole
- পরিবর্তন যখন
<p myDir>
ক্লিক করা হয় যে তার উদ্বোধনী ট্যাগ থেকে পরিবর্তন হয় <p mydir="" role="admin">
থেকে <p mydir="" role="guest">
এবং ফিরে।
directives.ts
import {Component,HostListener,Directive,HostBinding,Input} from '@angular/core';
@Directive({selector: '[myDir]'})
export class HostDirective {
@HostBinding('attr.role') role = 'admin';
@HostListener('click') onClick() {
this.role= this.role === 'admin' ? 'guest' : 'admin';
}
}
AppComponent.ts
import { Component,ElementRef,ViewChild } from '@angular/core';
import {HostDirective} from './directives';
@Component({
selector: 'my-app',
template:
`
<p myDir>Host Element
<br><br>
We have a (HostListener) listening to this host's <b>click event</b> declared with @HostListener
<br><br>
And we have a (HostBinding) binding <b>the role property</b> to host element declared with @HostBinding
and checking host's property binding updates.
If any property change is found I will update it.
</p>
<div>View this change in the DOM of the host element by opening developer tools,
clicking the host element in the UI.
The role attribute's changes will be visible in the DOM.</div>
`,
directives: [HostDirective]
})
export class AppComponent {}