首页 文章

例外:'t bind to ' ngFor ' since it isn' t是一个已知的原生属性

提问于
浏览
184

我究竟做错了什么?

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">

6 回答

  • 3

    我在 talk 面前错过了 let

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

    请注意,不推荐使用as of 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 .

  • 8

    导致OP错误的另一个错误可能是使用 in

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

    而不是 of

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

    这个声明在Angular2 Beta版本中使用.....

    此后使用 let 而不是 #

    let 关键字用于声明局部变量

  • 40

    就我而言,这是一封小信 f . 我正在分享这个答案,因为这是谷歌的第一个结果

    make sure to write *ngFor

  • 2

    对我来说,长话短说,我无意中降级为角度-β-16 .

    The let ... syntax is ONLY valid in 2.0.0-beta.17+

    如果您对此版本以下的任何内容尝试let语法 . 您将生成此错误 .

    升级到angular-beta-17或使用#item in items语法 .

  • 14

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

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

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

相关问题