2015-12-29 5 views
5

मैं * ngClass, क्या पिछले अल्फा रिलीज पर काम करता था और angular2 बीटा पर अब काम करने के लिए प्रतीत नहीं होता है में एक से अधिक मान जोड़ने के लिए कोशिश कर रहा हूँ:कई वर्गों

<i *ngClass="['fa','fa-star']"></i> 

यह एक त्रुटि पैदा करता है :

EXCEPTION: TypeError: Cannot read property 'add' of undefined in [['fa','fa-star'] in [email protected]:27]

मुझे यहां क्या याद आ रही है?

उत्तर

16

आपको संपत्ति बाध्यकारी बनाने के लिए स्क्वायर ब्रैकेट का उपयोग करना चाहिए। आप गतिशील रूप से इन कक्षाओं में बदल करने के लिए तो का उपयोग कर ngClass overkill है नहीं जा रहे हैं this plunk

<i [ngClass]="['fa','fa-star']"></i> 
+0

कैसे आप अगर आप सरणी प्रदान कर रहे हैं गतिशील रूप से इन कक्षाओं में बदल सकता हूँ अपने टेम्पलेट में? – Zyzle

+0

@Zyzle मैं इस सरणी के लिए कुछ चर बनाउंगा और इसे अपने घटक से बदल दूंगा (उदाहरण के लिए '[ngClass] =" myDynamicArray "')। – alexpods

+0

मैं जवाब को अद्यतन करता हूं, जैसा कि मैंने बताया है, मूल उदाहरण टेम्पलेट – Zyzle

4

देखें। आप अपने टेम्पलेट में बस class="fa fa-star" का उपयोग कर सकते हैं।

ngClass का उपयोग तब किया जाना चाहिए जब आप इन्हें गतिशील रूप से चालू और बंद करना चाहते हैं। दस्तावेज़ में एक उदाहरण है:

आपका घटक एक विधि होगा:

setClasses() { 
    return { 
    saveable: this.canSave,  // true 
    modified: !this.isUnchanged, // false 
    special: this.isSpecial,  // true 
    } 
} 

तो जैसे अपने खाके में ngClass का उपयोग करें:

<div [ngClass]="setClasses()">This div is saveable and special</div> 
+0

मैं उन्हें गतिशील रूप से बदल रहा था, लेकिन आपका समाधान वास्तव में दिलचस्प है। – Sagi

+1

ठीक है, लेकिन अगर आप सरणी को ngClass में हार्ड कोड करते हैं तो आप उन्हें बदलने पर कैसे योजना बनाते हैं? – Zyzle

+0

मैंने प्रश्न में उदाहरण को सरल बना दिया। मेरे असली मामले में मैं एक घटक विधि से लौटा गतिशील वर्गों का उपयोग करें। – Sagi

4

तुम भी एक स्ट्रिंग कई वर्गों युक्त निर्माण कर सकते हैं ।

इस मामले में additionalClass एक @Input classname और सक्रिय युक्त वर है एक बूलियन कि सक्रिय वर्ग सेट है

<div [ngClass]="(additionalClass + ' ' + (active ? 'active' : ''))"></div> 
संबंधित मुद्दे