कोणीय 2 पहले, आखिरी, इंडेक्स लूप में जाते हैं


86

मैं इस उदाहरण में पहली घटना को डिफ़ॉल्ट के रूप में सेट करने का प्रयास कर रहा हूं: प्लंकर

निम्नलिखित त्रुटि हो रही है:

    Unhandled Promise rejection: Template parse errors:
    TypeError: Cannot read property 'toUpperCase' of undefined ("dButtonToggleGroup">
    <md-button-toggle [ERROR ->]*ngFor="let indicador of indicadores; #first = first" value="indicador.id" [checked]="first">"): ng:///AppModule/HomeComponent.html@35:78
    Parser Error: Unexpected token #, expected identifier, keyword, or string at column 31 in [let indicador of indicadores; #first = first] in ng:///AppModule/HomeComponent.html@35:78 ("<md-button-toggle *ngFor="let indicador of indicadores; #first = first" value="indicador.id" [ERROR ->][checked]="first">
    <span>{{ indicado"): ng:///AppModule/HomeComponent.html@35:153

गलत क्या है??

जवाबों:


175

इस प्लंकर को देखें

जब आप चर के लिए बाध्य कर रहे हैं, तो आपको कोष्ठक का उपयोग करने की आवश्यकता है। इसके अलावा, आप हैशटैग का उपयोग तब करते हैं जब आप अपने html में तत्वों का संदर्भ प्राप्त करना चाहते हैं, न कि उस तरह के टेम्प्लेट के अंदर चर घोषित करने के लिए।

<md-button-toggle *ngFor="let indicador of indicadores; let first = first;" [value]="indicador.id" [checked]="first"> 
...

संपादित करें: क्रिस्टोफर मूर को धन्यवाद : कोणीय निम्नलिखित स्थानीय चर को उजागर करता है:

  • index
  • first
  • last
  • even
  • odd

धन्यवाद! इससे मुझे बहुत मदद मिली, लेकिन मैंने पहले इस्तेमाल करने की कोशिश की क्योंकि इसके बारे में खोज करने पर मुझे कुछ उदाहरण मिले जैसे: blog.angular-university.io/angular-2-ngfor (किसी सूची के पहले और अंतिम तत्व को
पहचानना

आह अच्छा। आप भी कर सकते हैं। इसके बजाय let i = index, इसे let first = first;केवल "i == 0" के बजाय "पहले" चेक करने के लिए [चेक किए गए] बाइंडिंग को बदल दें।
स्टेवेडू

अच्छा! अब काम कर रहा है! लेकिन मुझे समझ में नहीं आ रहा है कि मुझे ब्रैकेट के साथ चेक किए गए विशेषता को क्यों बांधना चाहिए
प्रीसेसी

29
में @Steveadoo ngForकोणीय उजागर निम्नलिखित स्थानीय चर index, first, last, evenऔर odd। क्या आप भविष्य के उपयोगकर्ताओं के लिए इस बिंदु को स्पष्ट करने के लिए उत्तर को अपडेट कर सकते हैं?
क्रिस्टोफर मूर

2
इसके बजाय let first = firstआप first as isFirstयहाँ वर्णित के रूप में लिख सकते हैं (isFirst कस्टम चर है): angular.io/api/common/NgForOf#local-variables
jurl

57

यहाँ बताया गया है कि इसका कोणीय 6 में क्या किया गया है

<li *ngFor="let user of userObservable ; first as isFirst">
   <span *ngIf="isFirst">default</span>
</li>

से परिवर्तन नोट let first = firstकरने के लिएfirst as isFirst


आपको काम करने |के ;लिए इसके साथ पाइप को बदलना होगा ।
फ्लोरियन मोजर

let first = first तथा first as isFirst दोनों घोषणाओं का उपयोग करने के लिए सही हैं, दूसरा एक उपनाम बहुत अधिक पठनीय है
मोहन राम

0

इसके द्वारा आप *ngForANGULAR में लूप में कोई भी इंडेक्स प्राप्त कर सकते हैं ...

<ul>
  <li *ngFor="let object of myArray; let i = index; let first = first ;let last = last;">
    <div *ngIf="first">
       // write your code...
    </div>

    <div *ngIf="last">
       // write your code...
    </div>
  </li>
</ul>

हम इन उपनामों का उपयोग कर सकते हैं *ngFor

  • index: number: let i = indexवस्तु के सभी सूचकांक पाने के लिए।
  • first: boolean: let first = firstवस्तु के पहले सूचकांक पाने के लिए।
  • last: boolean: let last = lastवस्तु के अंतिम सूचकांक पाने के लिए।
  • odd: boolean: let odd = oddवस्तु की अजीब सूचकांक पाने के लिए।
  • even : boolean : let even = evenवस्तु का भी सूचकांक पाने के लिए।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.