我做错了什么?

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

当前回答

我错过了就让在前面说话:

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

注意到。使用#…不建议在NgFor等结构性指令中声明局部变量。用let代替。

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

最初的回答:

我错过了#在谈话前:

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

我们很容易忘记#。我希望Angular的异常错误消息会说:you forget that # again。

其他回答

对我来说,在app.module.ts文件中没有正确导入组件。导入后一切工作正常

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

)}

我错过了就让在前面说话:

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

注意到。使用#…不建议在NgFor等结构性指令中声明局部变量。用let代替。

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

最初的回答:

我错过了#在谈话前:

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

我们很容易忘记#。我希望Angular的异常错误消息会说:you forget that # again。

在我的例子中,我犯了从文档中复制*ng-for=的错误。

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

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

另一个导致OP错误的拼写错误可以用在:

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

你应该用of代替:

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

使用这个

<div *ngFor="let talk of talks"> 
   {{talk.title}} 
   {{talk.speaker}}
   <p>{{talk.description}}</p>
</div>
    

您需要指定变量以遍历对象的数组