angular - अपवाद: 'एनफॉर' से नहीं बंध सकते क्योंकि यह एक ज्ञात मूल संपत्ति नहीं है




typescript angular2-directives (7)

मैं क्या गलत कर रहा हूं?

import {bootstrap, Component} from 'angular2/angular2'

@Component({
  selector: 'conf-talks',
  template: `<div *ngFor="talk of talks">
     {{talk.title}} by {{talk.speaker}}
     <p>{{talk.description}}
   </div>`
})
class ConfTalks {
  talks = [ {title: 't1', speaker: 'Brian', description: 'talk 1'},
            {title: 't2', speaker: 'Julie', description: 'talk 2'}];
}
@Component({
  selector: 'my-app',
  directives: [ConfTalks],
  template: '<conf-talks></conf-talks>'
})
class App {}
bootstrap(App, [])

त्रुटि है

EXCEPTION: Template parse errors:
Can't bind to 'ngFor' since it isn't a known native property
("<div [ERROR ->]*ngFor="talk of talks">

इसके अलावा इसमें शुद्ध टाइपस्क्रिप्ट का उपयोग करने का प्रयास न करें ... मैं उपयोग और उपयोग के for अधिक पत्राचार करना चाहता था। बस कांस्ट की जगह लेट काम कर रहा है।

जैसा कि @ अलेक्जेंडर-एबाकुमोव ने प्रतिस्थापित करने of लिए कहा in


ओपी की त्रुटि के लिए एक और टाइपो का उपयोग in जा सकता in :

<div *ngFor="let talk in talks">

आपको इसके बजाय उपयोग करना चाहिए:

<div *ngFor="let talk of talks">

मेरे मामले में मैंने डॉक्स से *ng-for= कॉपी करने की गलती की।

https://angular.io/guide/user-input

अगर मैं ग़लत हूं तो मेरी गलती सुझाएं। लेकिन ऐसा लगता है *ng-for= को बदलकर *ngFor= कर दिया गया है


मेरे मामले में, इस त्रुटि के परिणामस्वरूप * ngFor का उपयोग करने वाले घटक वाले मॉड्यूल को app.module.ts में शामिल नहीं किया गया था। आयात सरणी में इसे शामिल करने से मेरे लिए समस्या हल हो गई।


मेरे लिए, एक लंबी कहानी को छोटा करने के लिए, मैंने अनजाने में कोणीय-बीटा -16 को डाउनग्रेड कर दिया था।

लेट ... सिंटैक्स केवल 2.0.0-beta.17 + में मान्य है

यदि आप इस संस्करण के नीचे किसी भी चीज पर वाक्य रचना को आजमाते हैं। आप इस त्रुटि को उत्पन्न करेंगे।

या तो कोणीय-बीटा -17 में अपग्रेड करें या आइटम सिंटैक्स में # साइट का उपयोग करें।


मैं talk चूक गया:

<div *ngFor="let talk of talks">

ध्यान दें कि NgFor जैसी संरचनात्मक निर्देशों के अंदर स्थानीय चरों को घोषित करने के लिए #... के बीटा.17 उपयोग के रूप में पदावनत किया जाता है। इसके बजाय का उपयोग करें।

<div *ngFor="#talk of talks"> अब बन जाता है <div *ngFor="let talk of talks">

मूल उत्तर:

मैंने talk सामने # याद किया:

<div *ngFor="#talk of talks">

यह भूलना इतना आसान है कि # । मैं चाहूंगा कि कोणीय अपवाद त्रुटि संदेश इसके बजाय कहेंगे:
you forgot that # again


यह कथन Angular2 बीटा संस्करण में उपयोग किया गया है .....

इसके बाद # के बजाय उपयोग करने दें

स्थानीय चर घोषित करने के लिए कीवर्ड का उपयोग किया जाता है








ngfor