मैं कोणीय 2 के लिए नया हूं और मुझे एसिंक http अनुरोध और इंटरपोलेशन के साथ बाध्यकारी समस्या का सामना करना पड़ रहा है।कोणीय 2 - एसिंक http अनुरोध
यहाँ मेरी घटक है:
@Component({
selector: 'info',
template: `<h1>{{model.Name}}</h1>`
})
export class InfoComponent implements OnInit {
model: any;
constructor(
private _service: BackendService
) { }
ngOnInit() {
if (this.model == null) {
this._service.observableModel$.subscribe(m => this.model = m);
this._service.get();
}
}
}
जब टेम्पलेट प्रदान की गई है मैं कोई त्रुटि मिलती है क्योंकि "मॉडल" अभी तक सेट नहीं है।
मैं इस बहुत बदसूरत हैक साथ समस्या हल:
@Component({
selector: 'info',
template: `
<template ngFor #model="$implicit" [ngForOf]="models | async">
<h1>{{model.Name}}</h1>
</template>
`
})
export class NeadInfoComponent implements OnInit {
models: Observable<any>;
constructor(
private _service: BackendService
) { }
ngOnInit() {
if (this.models == null) {
this._service.observableModel$.subscribe(m => this.models = Observable.of([m]));
this._service.get();
}
}
}
मेरा प्रश्न है: मेरे http कॉल पूर्ण होने तक कैसे टेम्पलेट प्रतिपादन को स्थगित करने या कैसे बाध्यकारी बिना टेम्पलेट में सीधे "मॉडल" मूल्यों को जोड़ एक और घटक के लिए?
धन्यवाद!
धन्यवाद मार्क! एल्विस ने चाल की! लेकिन मैं अभी तक प्रवाह प्रस्तुत नहीं समझता। घटक गुणों में कोई भी बदलाव होने पर हर बार टेम्पलेट प्रस्तुत किया जाता है? –
@ टोनीएलेक्सेंडरहेल्ड, कोणीय परिवर्तन का पता लगाने (जो हर घटना के बाद चलता है) के दौरान, डिफ़ॉल्ट रूप से, आपके सभी दृश्य/टेम्पलेट बाइंडिंग गंदे चेक किए जाते हैं, जिसका अर्थ है कि उन्हें परिवर्तनों के लिए चेक किया गया है। जब सर्वर से डेटा लौटाता है, तो यह एक घटना है, इसलिए पहचान का पता चलता है। 'model.Name' गंदे चेक किया गया है और पाया गया है, इसलिए कोणीय डीओएम अपडेट करता है। कोणीय ब्राउज़र पर नियंत्रण लौटने के बाद, यह डीओएम परिवर्तन को देखता है और जो स्क्रीन पर हम देखते हैं उसे अद्यतन करता है। –
धन्यवाद @MarkRajcok! अब यह स्पष्ट है। –