O que estou fazendo de errado?
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, [])
O erro é
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
fonte
fonte
#
) é usada para declarar uma variável modelo localOutro erro de digitação que leva ao erro do OP pode estar usando
in
:Você deve usar
of
:fonte
Esta declaração usada na versão beta do Angular2 .....
A seguir, use let em vez de #
a palavra-chave let é usada para declarar variável local
fonte
No meu caso, era uma pequena letra
f
. Estou compartilhando esta resposta apenas porque este é o primeiro resultado no googlecertifique-se de escrever
*ngFor
fonte
No angular 7, isso foi corrigido adicionando estas linhas ao
.module.ts
arquivo:import { CommonModule } from '@angular/common'; imports: [CommonModule]
fonte
Você deve usar a palavra-chave let para declarar variáveis locais, por exemplo, * ngFor = "let talk of speech"
fonte
Para mim, para resumir uma longa história, eu inadvertidamente havia rebaixado para angular-beta-16.
A sintaxe let ... só é válida no 2.0.0-beta.17 +
Se você tentar a sintaxe let em qualquer coisa abaixo desta versão. Você irá gerar este erro.
Atualize para angular-beta-17 ou use o #item na sintaxe de itens.
fonte
No meu caso, cometi o erro de copiar
*ng-for=
os documentos.https://angular.io/guide/user-input
Corrija-me se eu estiver errada. Mas parece
*ng-for=
que foi alterado para*ngFor=
fonte
Esqueci de anotar meu componente com " @Input " (Doh!)
book-list.component.html (código incorreto ):
Versão corrigida do book-item.component.ts :
fonte
Também não tente usar TypeScript puro nisso ... Eu queria corresponder mais ao
for
uso e uso*ngFor="const filter of filters"
e obtive o ngFor que não é um erro de propriedade conhecido. Apenas substituindo const por let está funcionando.Como @ alexander-abakumov disse para o
of
substituído porin
.fonte
No meu caso, o módulo que contém o componente usando o * ngFor resultante neste erro, não foi incluído no app.module.ts. Incluí-lo na matriz de importações resolveu o problema para mim.
fonte
Apenas para cobrir mais um caso, quando eu estava recebendo o mesmo erro e o motivo estava usando em vez de no iterador
caminho errado
let file in files
Maneira correta
let file of files
fonte
Usa isto
Você precisa especificar uma variável para iterar sobre uma matriz de um objeto
fonte