दिलचस्प पोस्ट
ग्रीन थ्रेड्स बनाम नॉन ग्रीन थ्रेड्स एंड्रॉइड – फैल / चुटकी के साथ रिलेटिव लेआउट में ज़ूम इन / आउट करें कमांड प्रॉम्प्ट कमांड चलाएं स्विफ्ट के साथ शाए को स्ट्रिप कैसे क्रिप्ट करना है? पायथन में, आप ऑर्डर किए गए आदेश के रूप में YAML मैपिंग कैसे लोड कर सकते हैं? डिफ़ॉल्ट विकल्प / आउटपुट डिवाइस की सेटिंग (जैसे 'pdfwrite' या 'tiffg4') के लिए Ghostscript पूछताछ प्रीकंपूटेड मानों के साथ geom_boxplot अनुकूलन समयपूर्व कब है? कोणीय 2 एप बूटस्ट्रैप करते हुए एक एपीआई कॉल करने के लिए कैसे करें ऐप आइकन प्रदर्शित करें यदि संपर्क फोन एड्रेस बुक में एप्लिकेशन के साथ जुड़ा हुआ है क्या आप सी # कोड में एक मूल अपवाद पकड़ सकते हैं? जाली: एक खिड़की में कई भूखंड हैं? सी # कन्स्ट्रक्टर में इस () का उपयोग करना Android View.scrollTo (x, y) कहां पर स्क्रॉल करता है? जावास्क्रिप्ट में गतिशील मापदंडों के साथ गतिशील फ़ंक्शन कॉल करना

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

मैं यहां मूल कोने 2 ट्यूटोरियल का पालन करने का प्रयास कर रहा हूं:

https://angular.io/docs/js/latest/guide/displaying-data.html

मैं इस कोड के साथ अपना नाम लोड करने और प्रदर्शित करने के लिए कोणीय एप्लिकेशन प्राप्त कर सकता हूं:

import { Component, View, bootstrap } from 'angular2/angular2'; @Component({ selector: "my-app" }) class AppComponent { myName: string; names: Array<string>; constructor() { this.myName = "Neil"; } } bootstrap(AppComponent); 

हालांकि जब मैं तारों की एक सरणी जोड़ने की कोशिश करता हूं और उन्हें एनजी-के साथ प्रदर्शित करने का प्रयास करता हूं, तो यह निम्न त्रुटि फेंक रहा है:

 Can't bind to 'ng-forOf' since it isn't a known native property (" <p>Friends:</p> <ul> <li [ERROR ->]*ng-for="#name of names"> {{ name }} </li> "): AppComponent@4:16 Property binding ng-forOf not used by any directive on an embedded template (" <p>Friends:</p> <ul> [ERROR ->]<li *ng-for="#name of names"> {{ name }} </li> "): AppComponent@4:12 

यहां कोड है:

 import { Component, View, bootstrap } from 'angular2/angular2'; @Component({ selector: "my-app" }) @View({ template: ` <p>My name: {{ myName }}</p> <p>Friends:</p> <ul> <li *ng-for="#name of names"> {{ name }} </li> </ul> `, directives: [ NgFor ] }) class AppComponent { myName: string; names: Array<string>; constructor() { this.myName = "Neil"; this.names = ["Tom", "Dick", "Harry"]; } } bootstrap(AppComponent); 

मैं क्या खो रहा हूँ?

Solutions Collecting From Web of "'एनजी-फोर्फ़' के लिए बाध्य नहीं किया जा सकता क्योंकि यह ज्ञात देशी संपत्ति नहीं है"

यदि आप अल्फा 52 का उपयोग करते हैं, तो GITHub रेपो में CHANGELOG.md को देखें। उन्होंने टेम्प्लेट को केस-संवेदी बदल दिया, जो ngFor बजाय ng-for (अन्य सभी निर्देशों के लिए समान)

तत्व नाम जैसे <router-outlet> कस्टम तत्वों के साथ संगत रहने के लिए नहीं बदला गया था, जो कस्टम तत्वों के टैग नाम में एक डैश की आवश्यकता होती है।

में > = आरसी .5 (और अंतिम) ngFor और इसी तरह के निर्देश डिफ़ॉल्ट रूप से परिवेश नहीं हैं। उन्हें स्पष्ट रूप से प्रदान की जानी चाहिए

 @NgModule({ imports: [CommonModule], 

या यदि आप केवल ब्राउज़र-आधारित होने के लिए मॉड्यूल को लॉक होने पर ध्यान नहीं देते हैं

 @NgModule({ imports: [BrowserModule], 

CommonModule को भी WorkerAppModule करता है जैसे WorkerAppModule भी करता है।

अद्यतन करें

CommonModule मॉड्यूल को एप मॉड्यूल में आयात किया जाना चाहिए, अन्य मॉड्यूल में CommonModule मॉड्यूल को इसके बजाय आयात करना चाहिए।

अंगुल्य 2.1.0+ के साथ

ऐसा लगता है कि आप अपने ऐप मॉड्यूल में CommonModule मॉड्यूल आयात करना चाहिए और अन्य में CommonModule मॉड्यूल आयात करना चाहिए (आप आलसी लोडिंग के साथ दो बार CommonModule आयात नहीं कर सकते हैं)।

कोणीय 2 आरसी 5 के साथ:

यह संस्करण NgModules प्रस्तुत करता है , आपको ngFor , और ngIf का उपयोग करने के लिए अपने मॉड्यूल ( ngFor ) में ngFor मॉड्यूल आयात ngIf :

ब्राउज़र मॉड्यूल महत्वपूर्ण अनुप्रयोग सेवा प्रदाताओं को पंजीकृत करता है। इसमें एनजीआईएफ और एनजीएफ जैसे सामान्य निर्देश भी शामिल हैं जो इस मॉड्यूल घटक टेम्प्लेट में तुरंत दिखाई और प्रयोग करने योग्य हो जाते हैं।

उदाहरण:

 import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; @NgModule({ imports: [BrowserModule], providers: [], exports: [], declarations: [] }) export class MyModule { } 

Angular2 beta ng-for में सही नहीं है। यह *ngFor होना चाहिए

एनजीआईफ़ और एनजीएफोर को आम मॉड्यूल में @ कोणीय / सामान्य से घोषित किया गया है

सामान्यमॉड्यूल कई सामान्य निर्देशों का योगदान करता है जिसमें अनुप्रयोगों को एनजीआईएफ और एनजीएफ के लिए आवश्यक है।

ब्राउज़र मॉड्यूल सामान्य मॉड्यूल आयात करता है और इसे फिर से निर्यात करता है। शुद्ध प्रभाव यह है कि BrowserModule का एक आयातक सामान्यमॉड्यूल निर्देशों को स्वचालित रूप से प्राप्त करता है।

अपना कोड अपडेट करें

 import { CommonModule } from '@angular/common'; @NgModule({ imports: [CommonModule] }) // In HTML <li *ngFor="let customer of customers">{{customer.name}}</tr> 

अधिक जानकारी के लिए कोणीय मॉड्यूल

एनजीएफएआर निर्देश के लिए वाक्यविन्यास है

 <tr *ngFor="let name of names">{{name}}</tr> 

सूचना है कि अब नामों का #name नहीं है, लेकिन नामों का नाम दें और एनजीएफएआर को * की आवश्यकता होती है और केस संवेदनशील होते हैं।

अन्य उत्तरों के पीछे, एक और संभावित कारण यह है कि आप कुछ एचटीएमएल फॉर्मेटर-रिपैकर का उपयोग करते हैं जो आपके सारे एचटीएमएल – घटक टेम्पलेट्स सहित – लोअरकेस में परिवर्तित करता है।

कोणीय टेम्पलेट प्रतिस्थापन ngFor और ngIf टैग के लिए संवेदनशील है, कम से कम आज, लेकिन अगले हफ्ते मैं निश्चित रूप से कुछ नहीं कह सकता।

विशेष रूप से वेबपैक प्लगिन, उदाहरण के लिए htmljs या html-minify काम को बुरी तरह से करते हैं क्योंकि वे अपने डिफ़ॉल्ट सेटिंग पर सब कुछ को लोअरकेस रूपांतरित करते हैं। संकलित पाठ में HTML कोड दोहराएं, यह सभी लोअरकेस (जैसे *ngif= …) के साथ हो सकता है, जिसे स्वीकार नहीं किया जाएगा, भले ही आपके मूल स्रोत में यह सही है!

बेशक यह एचटीएमएल 5 मानक को तोड़ता है।

ऐसा इसलिए होता है क्योंकि हमारे सबसे अद्भुत कोणीय विकास का मानना ​​है कि "वे एचटीएम 5 का अधिक बारीकी से पालन करना चाहते हैं" , लेकिन हमेशा कुछ आश्चर्यजनक अपवाद होते हैं, जिससे काम करने के लिए angular2 हमेशा बेहतर और बेहतर होता है।