আমি জানি উত্তরটি ইতিমধ্যে দেওয়া আছে তবে আমি কীভাবে কোনও ফর্মের মূল্য আপডেট করতে হবে তার জন্য একটি সংক্ষিপ্ত উত্তর দিতে চাই যাতে অন্যান্য নতুন আগতগণ একটি পরিষ্কার ধারণা পেতে পারে।
আপনার ফর্ম কাঠামো একটি উদাহরণ হিসাবে এটি ব্যবহার করার জন্য তাই নিখুঁত। সুতরাং, আমার উত্তর জুড়ে আমি এটি রূপ হিসাবে চিহ্নিত করব।
this.form = this.fb.group({
'name': ['', Validators.required],
'dept': ['', Validators.required],
'description': ['', Validators.required]
});
সুতরাং আমাদের ফর্মটি একটি ফর্মগ্রুপ ধরণের অবজেক্টের যেখানে তিনটি ফর্মকন্ট্রোল রয়েছে ।
মডেলের মান আপডেট করার জন্য দুটি উপায় রয়েছে:
স্বতন্ত্র নিয়ন্ত্রণের জন্য একটি নতুন মান সেট করতে setValue () পদ্ধতিটি ব্যবহার করুন। সেটভ্যালু () পদ্ধতিটি ফর্ম গ্রুপের কাঠামোর সাথে কঠোরভাবে অনুসরণ করে এবং নিয়ন্ত্রণের জন্য পুরো মানটিকে প্রতিস্থাপন করে।
ফর্মের মডেলটিতে পরিবর্তিত অবজেক্টে সংজ্ঞায়িত যে কোনও বৈশিষ্ট্য প্রতিস্থাপন করতে প্যাচভ্যালু () পদ্ধতিটি ব্যবহার করুন।
সেটভ্যালু () পদ্ধতির কঠোর চেকগুলি জটিল আকারগুলিতে বাসা বাঁধার ত্রুটিগুলি ধরতে সহায়তা করে, যখন প্যাচভ্যালু () এই ত্রুটিগুলিতে নিঃশব্দে ব্যর্থ হয়।
কৌনিক সরকারী ডকুমেন্টেশন থেকে এখানে
সুতরাং, যখন একাধিক নিয়ন্ত্রণ রয়েছে এমন একটি ফর্ম গোষ্ঠীর উদাহরণটির জন্য মান আপডেট করার সময়, তবে আপনি কেবলমাত্র মডেলের অংশগুলি আপডেট করতে চাইতে পারেন। প্যাচভ্যালু () হ'ল আপনি যা অনুসন্ধান করছেন।
উদাহরণ দেখতে দিন। আপনি যখন প্যাচভ্যালু () ব্যবহার করেন
this.form.patchValue({
dept: 1
});
//here we are just updating only dept field and it will work.
তবে আপনি যখন সেটওয়ালু () ব্যবহার করেন তখন আপনাকে পুরো মডেলটি আপডেট করতে হবে কারণ এটি ফর্ম গোষ্ঠীর কাঠামোটি কঠোরভাবে মেনে চলে। সুতরাং, যদি আমরা লিখি
this.form.setValue({
dept: 1
});
// it will throw error.
আমাদের অবশ্যই ফর্ম গ্রুপ মডেলের সমস্ত সম্পত্তি পাস করতে হবে। এটার মত
this.form.setValue({
name: 'Mr. Bean'
dept: 1,
description: 'spome description'
});
তবে আমি এই স্টাইলটি ঘন ঘন ব্যবহার করি না। আমি নিম্নলিখিত পদ্ধতির ব্যবহারটি পছন্দ করি যা আমার কোডটিকে আরও পরিষ্কার এবং আরও বোধগম্য রাখতে সহায়তা করে।
আমি যা করি তা হ'ল, আমি সমস্ত নিয়ন্ত্রণগুলি পৃথক ভেরিয়েবল হিসাবে ঘোষণা করি এবং নির্দিষ্ট নিয়ন্ত্রণটি আপডেট করার জন্য setValue () ব্যবহার করি।
উপরের ফর্মের জন্য, আমি এই জাতীয় কিছু করব।
get companyIdentifier(): FormControl {
return this.form.get('name') as FormControl;
}
get dept(): FormControl {
return this.form.get('dept') as FormControl;
}
get description(): FormControl {
return this.form.get('description') as FormControl;
}
যখন আপনার ফর্ম নিয়ন্ত্রণ আপডেট করতে হবে তখন আপডেট করার জন্য কেবল সেই সম্পত্তিটি ব্যবহার করুন। উদাহরণস্বরূপ ব্যবহারকারী যখন ড্রপ ডাউন তালিকা থেকে কোনও আইটেম নির্বাচন করেন তখন প্রশ্নকর্তা ডিপার্টমেন্ট ফর্ম নিয়ন্ত্রণ আপডেট করার চেষ্টা করেছিলেন।
deptSelected(selected: { id: string; text: string }) {
console.log(selected) // Shows proper selection!
// instead of using this.form.controls['dept'].setValue(selected.id), I prefer the following.
this.dept.setValue(selected.id); // this.dept is the property that returns the 'dept' FormControl of the form.
}
ফর্মগ্রুপের সমস্ত বৈশিষ্ট্য এবং পদ্ধতি কীভাবে তা জানার জন্য আমি ফর্মগ্রুপ এপিআইয়ের পরামর্শ দেওয়ার পরামর্শ দিই।
অতিরিক্ত : গিটার সম্পর্কে জানতে এখানে দেখুন