मैंने एक साधारण यूआई बनाया जिसमें दो घटक (माता-पिता और बच्चे) शामिल हैं।बाल घटक अद्यतन में कोणीय 2 एनजी मॉडल, पैरेंट घटक संपत्ति
यूआई क्या करता है कि जब मैं बाल घटक के इनपुट बॉक्स में कुछ सामान टाइप करता हूं। मूल्य ngModel का उपयोग कर बदल जाएगा।
बच्चा घटक इस तरह से ठीक काम करता है।
// Child Component
@Component({
selector: 'child',
template: `
<p>{{sharedVar}}</p>
<input [(ngModel)]="sharedVar">
`
})
export class ChildComponent {
sharedVar: string;
}
अब मेरे पास एक मूल घटक है जिसे मैं बाल घटक के समान मूल्य का उपयोग करना चाहता हूं।
मैंने बाल घटक को बाल टेम्पलेट में जोड़ा, और चाइल्ड कंपोनेंट के sharedVar
पर कॉल करने के लिए निर्भरता इंजेक्शन का उपयोग किया।
// Parent Component
@Component({
selector: 'parent',
template: `
<h1>{{sharedVar}}</h1>
<child></child>
`,
directives: [ChildComponent],
providers: [ChildCompnent]
})
export class ParentComponent {
sharedVar: string;
constructor(child: ChildComponent) {
this.sharedVar = child.sharedVar;
}
}
समस्या यह है के रूप में मैं इनपुट बॉक्स में टाइप कर रहा हूँ, स्वचालित रूप से <p>
परिवर्तन में मूल्य समय में मूल्य माता पिता घटक के <h1>
नहीं बदलते।
घटकों को इंजेक्ट न करें, आप '@ इनपुट' https://angular.io/docs/ts/latest/api/core/Input-var.html का उपयोग करके बच्चों के घटकों को मान पास करते हैं, टेम्पलेट द्वारा बनाई गई घटना और प्रदाता निर्दिष्ट करके जो उदाहरण आप बनाते हैं वह दो अलग-अलग उदाहरण होते हैं। – Langley