例外:无法绑定到“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">

原文由 Mark Rajcok 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 440
2 个回答

我在 let 前面错过了 talk

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


请注意, 从 beta.17 开始,不推荐 使用 #... 在 NgFor 等结构指令中声明局部变量。使用 let 代替。

<div *ngFor="#talk of talks"> 现在变成 <div *ngFor="let talk of talks">

原答案:

我错过了 #talk 前面:

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

很容易忘记 # 。我希望 Angular 异常错误消息改为:

you forgot that # again

原文由 Mark Rajcok 发布,翻译遵循 CC BY-SA 4.0 许可协议

对我来说,组件未正确导入 app.module.ts 文件中。导入后一切正常

@NgModule({
    declarations: [
      YourComponent,
      OtherComponents
    ],

    imports: [...]

)}

原文由 Timmy Dchoune 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进