दिलचस्प पोस्ट
जावास्क्रिप्ट क्लाइंट-साइड / कैसे गूगल ने इसे किया था वेबसाइट में स्क्रीनशॉट कैसे करें? (एचडीडी तक पहुंचने की आवश्यकता नहीं है) गतिविधि से एंड्रॉइड में टुकड़े को डेटा भेजें JQuery / जावास्क्रिप्ट के साथ JSON डेटा को पार्स करने के लिए कैसे? हैशोड में प्रधान संख्या का उपयोग क्यों करना है? किसी अन्य विकल्प के चयन के आधार पर चयन विकल्प कैसे परिवर्तित करें? किसी उपयोगकर्ता ने अपलोड करने के लिए किसी फ़ाइल को चुन लिया है या नहीं तो कैसे परीक्षण करें? एंड्रॉइड में पृष्ठभूमि को कैसे सेट किया जा सकता है? रैंड कार्यान्वयन इकाई फ़्रेमवर्क 5 इकाई की गहरी कॉपी / क्लोन मैं C # में गतिशील रूप से नाम कैसे कर सकता हूँ? जीटी से एसबीटी निर्भरता कलाकृतियों को कैसे खींच सकता है? .NET में माइक्रोसॉफ्ट.ऑफ़िस.इंटरॉप.एक्ससेल का उपयोग करने के लिए मुझे कौन से संदर्भ की आवश्यकता है? आईओएस ऐप और इसके लिए सेटअप सर्वर में यूनिवर्सल लिंक का समर्थन कैसे करें? क्या आईएस नाल और = नल के बीच कोई अंतर है? mysql-python अधिष्ठापन त्रुटि: फ़ाइल 'config-win.h' में शामिल नहीं खोल सकता

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

मैं यहां मूल कोने 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); 

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

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

यदि आप अल्फा 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 हमेशा बेहतर और बेहतर होता है।