कोई समझाने कृपया सकते हैं क्या निम्नलिखित व्यवहार के पीछे है:Angular2, * ngIf और स्थानीय टेम्पलेट चर
कहते हैं कि हम एक Angular2 घटक एक _model वस्तु है कि है। तब खाके में हम इस
<form>
<input type="text" class="form-control" required [(ngModel)]="_model.firstName" ngControl="test2" #myInput >
<br>Class: {{myInput?.className}}
</form>
_model उपलब्ध है जो शुरू से ngOnInit में खरोंच से बनाया जा रहा है। इनपुट क्षेत्र ठीक से _model.firstName चर और लाइन
<br>Class: {{myInput?.className}}
साथ आबादी वाले सही ढंग से टेम्पलेट
Class: form-control ng-untouched ng-pristine ng-invalid
में निम्नलिखित renders है।
अभी तक इतना अच्छा है। क्या मुझे confuses उस पल मैं जोड़ने * ngIf है और मैं
<input *ngIf="_model" type="text" class="form-control" required [(ngModel)]="_model.firstName" ngControl="test2" #myInput >
लिए इनपुट क्षेत्र बदल क्योंकि जाहिरा तौर पर स्थानीय myInput
चर कोड में आरंभ नहीं हो जाता है और कुछ भी जब कुछ भी नहीं डबल घुंघराले ब्रेसिज़ प्रक्षेप कार्य करना बंद कर परिवर्तन, _model ऑब्जेक्ट अभी भी onNgInit()
में बनाया गया है और इनपुट फ़ील्ड अभी भी ठीक से काम कर रहा है। केवल बात यह है कि {{myInput?.className}}
renders
Class:
कोई व्याख्या कर सकते हैं कि क्या हो रहा है और/या इस के लिए दस्तावेज़ का सही टुकड़ा करने के लिए मुझसे बात कर रहा है?
अग्रिम धन्यवाद!
संपादित करें:
यहाँ एक plunker कि प्रश्न
http://plnkr.co/edit/itNRpy5lc9PB837C7HdP?p=preview
बनाया बग रिपोर्ट https://github.com/angular/angular/issues/8087
आपका _model एक बुलियन है? –
क्या आप एक प्लंकर बना सकते हैं? –
बस मेरे आवेदन में इसका परीक्षण किया, और मैं आपकी समस्या का पुनरुत्पादन कर सकता हूं। '* NgIf' जोड़ने के बाद किसी भी तरह' # myInput' को 'अपरिभाषित' किया जाता है। यह एक कोणीय 2 बग की तरह लगता है, या किसी को एक अच्छी व्याख्या के साथ आना चाहिए। – PierreDuc