Qu'est-ce que je fais mal?
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, [])
L'erreur est
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
la source
la source
#
) est utilisé pour déclarer une variable de modèle localeUne autre faute de frappe menant à l'erreur de l'OP pourrait être d'utiliser
in
:Vous devez utiliser à la
of
place:la source
Cette déclaration utilisée dans la version bêta d'Angular2 .....
Ci-après, utilisez let au lieu de #
let mot clé est utilisé pour déclarer la variable locale
la source
Dans mon cas, c'était une petite lettre
f
. Je partage cette réponse juste parce que c'est le premier résultat sur Googleassurez-vous d'écrire
*ngFor
la source
Dans angular 7, cela a été corrigé en ajoutant ces lignes au
.module.ts
fichier:import { CommonModule } from '@angular/common'; imports: [CommonModule]
la source
Vous devez utiliser le mot clé let pour déclarer des variables locales, par exemple * ngFor = "let talk of talk"
la source
Pour moi, pour faire court, j'ai été rétrogradé par inadvertance en angular-beta-16.
La syntaxe let ... est UNIQUEMENT valide dans 2.0.0-beta.17 +
Si vous essayez la syntaxe let sur quoi que ce soit en dessous de cette version. Vous générerez cette erreur.
Mettez à niveau vers angular-beta-17 ou utilisez la syntaxe #item dans les éléments.
la source
Dans mon cas, j'ai fait l'erreur de copier à
*ng-for=
partir des documents.https://angular.io/guide/user-input
Corrigez-moi si je me trompe. Mais il semble
*ng-for=
avoir été changé pour*ngFor=
la source
J'ai oublié d'annoter mon composant avec " @Input " (Doh!)
book-list.component.html (code incriminé ):
Version corrigée de book-item.component.ts :
la source
N'essayez pas non plus d'utiliser du TypeScript pur dans ce ... Je voulais plus correspondre à l'
for
utilisation et à l'utilisation*ngFor="const filter of filters"
et j'ai obtenu le ngFor pas une erreur de propriété connue. Le simple remplacement de const par let fonctionne.Comme l'a dit @ alexander-abakumov pour le
of
remplacé parin
.la source
Dans mon cas, le module contenant le composant utilisant le * ngFor résultant de cette erreur, n'était pas inclus dans app.module.ts. L'inclure dans le tableau des importations a résolu le problème pour moi.
la source
Juste pour couvrir un cas de plus lorsque j'obtenais la même erreur et que la raison utilisait in au lieu de in iterator
Fausse route
let file in files
Manière correcte
let file of files
la source
Utilisez ceci
Vous devez spécifier une variable pour itérer sur un tableau d'un objet
la source