Was mache ich falsch?
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, [])
Der Fehler ist
EXCEPTION: Template parse errors:
Can't bind to 'ngFor' since it isn't a known native property
("<div [ERROR ->]*ngFor="talk of talks">
angular
typescript
angular2-directives
ngfor
Mark Rajcok
quelle
quelle
#
) wird verwendet, um eine lokale VorlagenvariableEin weiterer Tippfehler, der zum Fehler des OP führt, könnte sein
in
:Sie sollten
of
stattdessen verwenden:quelle
Diese Anweisung wird in der Angular2 Beta-Version verwendet .....
Verwenden Sie im Folgenden let anstelle von #
Das Schlüsselwort let wird verwendet, um die lokale Variable zu deklarieren
quelle
In meinem Fall war es ein kleiner Brief
f
. Ich teile diese Antwort nur, weil dies das erste Ergebnis bei Google istStellen Sie sicher, dass Sie schreiben
*ngFor
quelle
In Winkel 7 wurde dies behoben, indem die folgenden Zeilen zur
.module.ts
Datei hinzugefügt wurden :import { CommonModule } from '@angular/common'; imports: [CommonModule]
quelle
Sie sollten das Schlüsselwort let verwenden, um lokale Variablen zu deklarieren, z. B. * ngFor = "Über Gespräche sprechen lassen"
quelle
Um es kurz zu machen, ich hatte versehentlich auf Angular-Beta-16 herabgestuft.
Die let ... -Syntax ist NUR in 2.0.0-beta.17 + gültig
Wenn Sie die let-Syntax für etwas unterhalb dieser Version ausprobieren. Sie werden diesen Fehler erzeugen.
Aktualisieren Sie entweder auf Angular-Beta-17 oder verwenden Sie das #item in der Elementsyntax.
quelle
In meinem Fall habe ich den Fehler gemacht, zu kopieren
*ng-for=
aus den Dokumenten zu .https://angular.io/guide/user-input
Korrigieren Sie mich, wenn ich falsch liege. Aber es scheint
*ng-for=
geändert worden zu sein*ngFor=
quelle
Ich habe vergessen, meine Komponente mit " @Input " (Doh!) Zu versehen.
book-list.component.html (beleidigender Code):
Korrigierte Version von book-item.component.ts :
quelle
Versuchen Sie auch nicht, reines TypeScript zu verwenden ... Ich wollte mehr der
for
Verwendung und Verwendung entsprechen*ngFor="const filter of filters"
und habe das ngFor nicht als bekannten Eigenschaftsfehler erhalten. Nur const durch let zu ersetzen, funktioniert.Wie @ alexander-abakumov sagte für die
of
ersetzt durchin
.quelle
In meinem Fall war das Modul, das die Komponente enthält, die * ngFor verwendet, was zu diesem Fehler führte, nicht in app.module.ts enthalten. Das Einfügen dort in das Import-Array hat das Problem für mich behoben.
quelle
Nur um einen weiteren Fall abzudecken , wenn ich die gleichen Fehler und der Grund , wurde mit in statt der in Iterator
Falscher Weg
let file in files
Der richtige Weg
let file of files
quelle
Benutze das
Sie müssen eine Variable angeben, um über ein Array eines Objekts zu iterieren
quelle