প্রকৃতপক্ষে, কৌনিক 2 + এ যখন কোনও উপাদান ইনপুট পরিবর্তিত হয় তখন সনাক্তকরণ এবং অভিনয় করার দুটি উপায় রয়েছে:
- আপনি পুরানো উত্তরে উল্লিখিত হিসাবে এনজিওনচেন্জেস () জীবনচক্র পদ্ধতিটি ব্যবহার করতে পারেন :
@Input() categoryId: string;
ngOnChanges(changes: SimpleChanges) {
this.doSomething(changes.categoryId.currentValue);
// You can also use categoryId.previousValue and
// categoryId.firstChange for comparing old and new values
}
ডকুমেন্টেশন লিংক: এনজিচেনজেস, সিম্পল চেঞ্জস, সিম্পল চেঞ্জ
ডেমো উদাহরণ: এই নিমজ্জনকারীকে দেখুন
- পর্যায়ক্রমে, আপনি নিম্নলিখিত হিসাবে একটি ইনপুট সম্পত্তি সেটার ব্যবহার করতে পারেন :
private _categoryId: string;
@Input() set categoryId(value: string) {
this._categoryId = value;
this.doSomething(this._categoryId);
}
get categoryId(): string {
return this._categoryId;
}
ডকুমেন্টেশন লিঙ্ক: এখানে দেখুন ।
ডেমো উদাহরণ: এই নিমজ্জনকারী দেখুন ।
আপনি কী ব্যবহার করবেন?
যদি আপনার উপাদানটির বেশ কয়েকটি ইনপুট থাকে, তবে আপনি যদি এনজিওনচেঞ্জস () ব্যবহার করেন তবে আপনি সমস্ত ইনপুটগুলির জন্য একবারে এনজিওচেনজেস () এর মধ্যে সমস্ত পরিবর্তনগুলি পাবেন। এই পদ্ধতির ব্যবহার করে, আপনি পরিবর্তিত ইনপুটটির বর্তমান এবং পূর্ববর্তী মানগুলিও তুলনা করতে পারেন এবং সেই অনুসারে পদক্ষেপ নিতে পারেন।
যাইহোক, যদি আপনি কিছু করতে চান যখন কেবলমাত্র একটি নির্দিষ্ট একক ইনপুট পরিবর্তন হয় (এবং আপনি অন্যান্য ইনপুটগুলির বিষয়ে চিন্তা করেন না) তবে কোনও ইনপুট সম্পত্তি সেটার ব্যবহার করা সহজ। যাইহোক, এই পদ্ধতির পরিবর্তিত ইনপুটটির পূর্বের এবং বর্তমান মানগুলির তুলনা করার জন্য একটি অন্তর্নির্মিত সরবরাহ সরবরাহ করা হয় না (যা আপনি সহজেই এনজিওনচেঞ্জস লাইফাইসাইকেল পদ্ধতির সাহায্যে করতে পারেন)।
সম্পাদনা করুন 2017-07-25: অ্যাঙ্গুলার পরিবর্তন সম্পর্কিত তথ্য হয়তো কিছু সরু দাসের মধ্যে আগুন নেবে না
সাধারনত, সেটার এবং এনজিওনচ্যাঞ্জস উভয়ের জন্য সনাক্তকরণের পরিবর্তনটি যখনই পিতা বা মাতা উপাদানটি সন্তানের কাছে যায় সেই ডেটা পরিবর্তন করে, তবে শর্ত থাকে যে ডেটাটি জেএস আদিম ডেটাটাইপ (স্ট্রিং, সংখ্যা, বুলিয়ান) । তবে, নিম্নলিখিত পরিস্থিতিতে, এটি জ্বলবে না এবং এটিকে কাজ করতে আপনাকে অতিরিক্ত পদক্ষেপ নিতে হবে।
আপনি যদি কোনও নেস্টেড অবজেক্ট বা অ্যারে ব্যবহার করেন (জেএস আদিম ডাটা টাইপের পরিবর্তে) পিতামাতাদের কাছ থেকে সন্তানের কাছে ডেটা পাস করার জন্য, সনাক্তকরণ পরিবর্তন করুন (সেটার বা এনজিচেঞ্জ ব্যবহার করে) অগ্নিকাণ্ডে না আসতে পারে, যেমনটি ব্যবহারকারীর উত্তরে বর্ণিত হয়েছে: মুটিজারিচ। সমাধানের জন্য এখানে দেখুন ।
যদি আপনি কৌণিক প্রসঙ্গে (যেমন, বাহ্যিকভাবে) বাইরে ডেটা পরিবর্তন করে থাকেন তবে কৌণিক পরিবর্তনগুলি জানতে পারবেন না। বাহ্যিক পরিবর্তন সম্পর্কে কৌণিক সচেতন করতে এবং এর ফলে পরিবর্তন সনাক্তকরণকে ট্রিগার করতে আপনাকে আপনার উপাদানটিতে চেঞ্জডেক্টরআরফ বা এনজিওন ব্যবহার করতে হতে পারে। পড়ুন এই ।