2012-12-24 9 views
11

के अंदर अभिव्यक्ति मेरे पास एक बहुत ही सरल कोणीय ऐप है और मैं एनजी-क्लास के साथ एनजी-रिपैट का उपयोग करने के लिए टेम्पलेट दोहराने के लिए उपयोग कर रहा हूं और गुणों में से एक के आधार पर बाहरी div को एक अलग वर्ग लागू कर रहा हूं डेटा बाध्य होने के नाते।एनजी-क्लास

इस

काम किया जब मैं एक साधारण इस्तेमाल किया ...

ng-class="message.type" 

... लेकिन दुर्भाग्य से मैं संदेश प्रकार के शुरू करने के लिए एक स्ट्रिंग को श्रेणीबद्ध करने की जरूरत है।

मैं एक JSfiddle यहाँ बनाने की कोशिश की ...

http://jsfiddle.net/XuYGN/5/

... लेकिन यह मेरी एक JSfiddle भी बनाने का पहला प्रयास है और मैं कुछ गलत कर दिया जाना चाहिए क्योंकि कोणीय सामान नहीं है प्रतीत होता प्रतीत होता है। यह दिखाता है कि मैं अभिव्यक्ति के साथ क्या करने की कोशिश कर रहा हूं।

किसी भी मदद की वास्तव में सराहना की जाएगी।

+0

यह ठीक काम करता है [यहां] (http://jsfiddle.net/XuYGN/7/), लेकिन क्या आपको यकीन है कि आपको 'ng-class' का उपयोग करने की आवश्यकता है, न कि सरल 'कक्षा'? – raina77ow

+1

यदि आप 'ऑनलोड' को 'नो रैप (बॉडी)' में बदलते हैं तो JSFiddle एंगुलरजेएस कोड चलाएगा जैसा आप उम्मीद कर रहे हैं। – Bert

+0

धन्यवाद बहुत अधिक बर्ट – jonhobbs

उत्तर

24

एचटीएमएल:

<div ng-controller="mainCtrl"> 

     <div ng-repeat="message in data.messages" ng-class="'className-' + message.type"> 

      Repeat Me   

     </div>   

    </div>     

</div> 

जावास्क्रिप्ट:

var mainCtrl=function($scope) { 

    $scope.data = {} 

    $scope.data.messages = [ 
     { 
      "type": "phone"}, 
     { 
      "type": "email"}, 
     { 
      "type": "meeting"}, 
     { 
      "type": "note"} 
    ] 

}

बेला डाल में

कुछ {{}} के आसपास अभिव्यक्ति न, क्योंकि यह एक अभिव्यक्ति है यह कर ।

10

FYI करें, क्या जवाब @camus के लिए एक विकल्प:

class="{{'className-' + message.type}}" 

जब class का उपयोग कर, अभिव्यक्ति (अंदर {{}} रों) अंतरिक्ष-सीमांकित वर्ग नामों की एक स्ट्रिंग के लिए मूल्यांकन करना चाहिए।

जब ng-class का उपयोग कर, अभिव्यक्ति निम्न में से एक के रूप में मूल्यांकित करना होगा:

  1. अंतरिक्ष-सीमांकित वर्ग नाम की एक स्ट्रिंग, या
  2. और वर्ग के नाम की सरणी, या
  3. एक नक्शा/बूलियन मूल्यों के लिए वर्ग नामों का उद्देश्य।
+4

इसका दूसरा विकल्प 'वर्ग = "वर्गनाम - {{message.type}}" ' –

+0

@MichaelStramel किसी भी विचार से IE के अलावा सबकुछ में काम करने का कारण क्या हो सकता है? "यह आईई है!" प्रकार के उत्तरों को स्वीकार नहीं किया जाता है ... – whyoz

+0

@ माइकलस्ट्रैमेल कोणीय में, जब आप कक्षा घोषणा (जैसे कि आपके उदाहरण में) के अंदर कोणीय चर का उपयोग करते हैं, तो आपको पृष्ठ से लोड होने पर प्रदर्शन कारणों के लिए, उससे बचने और इसके बजाय एनजी-क्लास का उपयोग करना चाहिए। यदि आप कक्षा = "className - {{...}} का उपयोग करते हैं, तो पृष्ठ एक वर्ग के रूप में" className - {{...}} "की व्याख्या करेगा जबकि {{..}} हल नहीं किया गया है और इसे स्क्रीन पर प्रदर्शित किया गया है । यदि आप एनजी-क्लास का उपयोग करते हैं, तो यह {{..}} हल नहीं होने पर कुछ भी प्रदर्शित नहीं करेगा। इस तरह, एनजी-क्लास के साथ आपको स्क्रीन पर दिखाए गए बदसूरत कोड नहीं मिलेगा। तेजी से इंटरनेट कनेक्शन में यह ध्यान देने योग्य नहीं है, लेकिन यह धीमी internets में है। –

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

  • कोई संबंधित समस्या नहीं^_^