2016-02-05 7 views
17

मुझे गतिशील रूप से चेकबॉक्स की एक सूची बनाना है, इसलिए मैंने ऑब्जेक्ट्स की सरणी को फिर से चालू करने के लिए * ngFor का उपयोग किया है, सब कुछ पुनरावृत्ति तक ठीक काम कर रहा है। समस्या तब होती है जब मैं लेबल टैग में for विशेषता का मान सेट करता हूं। कोणीय त्रुटि फेंक दिया गया है:'के लिए बाध्य नहीं हो सकता है क्योंकि यह ज्ञात मूल संपत्ति angular2

'के लिए' करने के लिए बाध्य नहीं किया जा सकता, क्योंकि यह एक ज्ञात देशी संपत्ति angular2

नया त्रुटि संदेश

बिना क्रिया वादा अस्वीकृति नहीं है: खाका पार्स त्रुटियां: 'के लिए' नहीं बंधी जा सकती क्योंकि यह 'लेबल' की ज्ञात संपत्ति नहीं है। http://plnkr.co/edit/aAQfWvHc7h7IBuYzpItO?p=preview

यहाँ क्या गलत मेरी कोड में:

<div *ngFor="#batch of batch_array"> 
    <label for="{{batch.id}}"><input type="checkbox" [value]="batch.id" id="{{batch.id}}"  
     (click)="batchSelectedEevent(batch.id)" /> {{batch.batch_name}} 
    </label> 
</div> 

यहाँ मेरी plnkr त्रुटि दिखा रहा है?

उत्तर

21

अद्यतन

Angular2 अंतिम [for]="xxx" में ठीक काम करना चाहिए। उन्होंने for से htmlFor तक उपनाम जोड़ा।

मूल

डिफ़ॉल्ट रूप से कोणीय संपत्ति बंधन का उपयोग करता है लेकिन label एक संपत्ति for जरूरत नहीं है। स्पष्ट रूप से कोणीय विशेषता बाध्यकारी उपयोग करने के लिए कहता हूं, बजाय का उपयोग करें:

[attr.for]="someField" 

या

attr.for="{{someField}}" 

बजाय।

ये भी काम करते हैं क्योंकि htmlFor संपत्ति for परिलक्षित होती है।

[htmlFor]="someField" 
htmlFor="{{someField}}" 

Angular2 RC.6 में एक उपनाम जोड़ दिया गया तो इन अब के रूप में अच्छी तरह से काम करना चाहिए:

[for]="someField" 

या

for="{{someField}}" 
+0

वाह यह ठीक धन्यवाद काम करता है! क्या मुझे पता चलेगा कि 'attr 'के बजाय' attr.for' में 'attr' का उपयोग क्यों करें? –

+1

'attr.for' के साथ आपको बाध्यकारी विशेषता को स्पष्ट रूप से चुनना होगा क्योंकि विशेषता बाध्यकारी महंगा है। गुण डीओएम में परिलक्षित होते हैं और बदलावों के लिए उदाहरण की आवश्यकता होती है कि यह जांचने के लिए कि क्या सीएसएस चयनकर्ता पंजीकृत हैं जो इस विशेषता सेट के साथ मेल खाते हैं। संपत्ति बाध्यकारी केवल जेएस और सस्ता है, इसलिए डिफ़ॉल्ट। –

+1

"संपत्ति बाध्यकारी केवल जेएस है"। मैं इतना नहीं कहूंगा। ऐसी कुछ विशेषताएं हैं जिनके पास समान गुण नहीं हैं - उदाहरण के लिए, भारी उपयोग की जाने वाली 'टेक्स्ट सामग्री' संपत्ति - इसलिए इन गुणों के लिए बाध्यकारी भी परिणामस्वरूप डीओएम अपडेट किया जा रहा है। –

संबंधित मुद्दे

 संबंधित मुद्दे