¿Qué estoy haciendo 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, [])
El error es
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
fuente
fuente
#
) se usa para declarar una variable de plantilla localOtro error tipográfico que conduce al error del OP podría estar usando
in
:Deberías usar
of
en su lugar:fuente
Esta declaración utilizada en la versión Angular2 Beta .....
En adelante use let en lugar de #
La palabra clave let se usa para declarar la variable local
fuente
En mi caso, era una pequeña letra
f
. Estoy compartiendo esta respuesta solo porque este es el primer resultado en googleasegúrate de escribir
*ngFor
fuente
En angular 7 lo solucionó agregando estas líneas al
.module.ts
archivo:import { CommonModule } from '@angular/common'; imports: [CommonModule]
fuente
Debe usar la palabra clave let como para declarar variables locales, por ejemplo, * ngFor = "let talk of talk"
fuente
Para mí, para abreviar una larga historia, sin querer me había rebajado a angular-beta-16.
La sintaxis let ... SOLO es válida en 2.0.0-beta.17 +
Si prueba la sintaxis let en cualquier cosa debajo de esta versión. Generarás este error.
Actualice a angular-beta-17 o use el #item en la sintaxis de elementos.
fuente
En mi caso cometí el error de copiar
*ng-for=
de los documentos.https://angular.io/guide/user-input
Corrígeme si estoy equivocado. Pero parece que
*ng-for=
se ha cambiado a*ngFor=
fuente
Olvidé anotar mi componente con " @Input " (Doh!)
book-list.component.html (Código ofensivo):
Versión corregida de book-item.component.ts :
fuente
Tampoco intente usar TypeScript puro en esto ... Quería corresponder más al
for
uso y uso*ngFor="const filter of filters"
y obtuve el ngPara un error de propiedad no conocido. Simplemente reemplazar const por let está funcionando.Como @ alexander-abakumov dijo para el
of
reemplazado porin
.fuente
En mi caso, el módulo que contiene el componente que usa * ngFor como resultado de este error no se incluyó en app.module.ts. Incluirlo allí en la matriz de importaciones resolvió el problema para mí.
fuente
Solo para cubrir un caso más cuando recibía el mismo error y la razón estaba usando en lugar de en iterador
Camino equivocado
let file in files
Forma correcta
let file of files
fuente
Utilizar este
Debe especificar la variable para iterar sobre una matriz de un objeto
fuente