Angular2exception:不能绑定到'ngFor',因为它不是一个已知的本地属性

我究竟做错了什么?

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, []) 

错误是

 EXCEPTION: Template parse errors: Can't bind to 'ngFor' since it isn't a known native property ("<div [ERROR ->]*ngFor="talk of talks"> 

我错过了在talk前:

 <div *ngFor="let talk of talks"> 

请注意,从#... 的beta.17用法来声明像NgFor一样的结构指令中的局部variables已被弃用。 改用let
<div *ngFor="#talk of talks">现在成为<div *ngFor="let talk of talks">

原始答案:

我在面前说错了#

 <div *ngFor="#talk of talks"> 

忘记那个#很容易。 我希望Angularexception错误消息会改为:
you forgot that # again

此声明用于Angular2 Beta版本…..

以下使用

关键字用来声明局部variables

就我而言,这是一个小字母f 。 我分享这个答案,因为这是谷歌的第一个结果

确保写入 *ngFor

导致OP的错误的另一个错字可以用in

 <div *ngFor="talk in talks"> 

而不是:

 <div *ngFor="talk of talks"> 

对于我来说,简而言之,我已经不经意地降级为angular度-β-16。

let …语法仅在2.0.0-beta.17 +中有效

如果你在这个版本下面的任何东西尝试let语法。 你会产生这个错误。

要么升级到angular-beta-17,要么在项目语法中使用#item。

在我的情况下,我犯了从文档复制*ng-for=的错误。

https://angular.io/guide/user-input

纠正我,如果我错了。 但是,似乎*ng-for=已被改为*ngFor=