/ / कोणीय प्रतिक्रियाशील रूप - "पुनरावर्ती" रूप - रूप, कोणीय, पुनरावृत्ति

कोणीय प्रतिक्रियाशील रूप - "रिकर्सिव" रूप - रूप, कोणीय, रिकर्सन

मैं इस इंटरफ़ेस के लिए एक फॉर्म बना रहा हूँ (उदाहरण के लिए):

interface Main {
name: string;
inners: Main[];
}

नामकरण के लिए खेद है: पी

मैं जो करने की कोशिश कर रहा हूं उसका एक रूप है जिसे आप अतिरिक्त जोड़ सकते हैं Mainजाने पर, और भीतर के प्रत्येक Mains अपने भीतर को भी जोड़ सकता है Mainरों।
लेकिन मुझे नहीं पता कि कैसे की पुनरावृत्ति को लागू करना है Mainमूल के अंदर है Mainप्रतिक्रियात्मक रूपों के बारे में।

मैं उपयोग कर रहा हूँ FormBuilder, और मैं अनुसरण कर रहा हूं डॉक्स पर उदाहरण.

मुझे पता है कि यह isn "बहुत अधिक डेटा नहीं है, लेकिन मेरे पास कुछ भी नहीं है जो अभी मेरे कोड में बुनियादी नहीं है।"

उत्तर:

जवाब के लिए 0 № 1

इसलिए, कुछ विचार के बाद, मैंने समस्या हल कर दी!

इसलिए यदि आप ट्यूटोरियल का पालन करते हैं, तो आपके पास अपने घटक के समान कोड होगा:

export class HeroDetailComponent3 {
heroForm: FormGroup; // <--- heroForm is of type FormGroup

constructor(private fb: FormBuilder) { // <--- inject FormBuilder
this.createForm();
}

createForm() {
this.heroForm = this.fb.group({
name: "", // <--- the FormControl called "name"
});
}
}

इसलिए मैंने जो किया, मैंने उसे बदल दिया FormGroup होने के लिए @Input() heroForm: FormGroup = null,
और मैंने "पाने के लिए एक विधि जोड़ी FormGroup सूचकांक पर:

innerMainAt(index: number): FormGroup {
return this.inners.at(index) as FormGroup;
}

और मैंने इसका उपयोग किया html इस अनुसार:

<div formArrayName="inners">
<div *ngFor="let inner of inners.controls; let i=index;" [formGroupName]="i">
// VVV this is the component, and it creates itself
<app-hero-form [heroForm]="innerMainAt(i)"</app-hero-form> // notice innerMainAt(i)
</div>
</div>