我究竟做错了什么?
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 回答
我在
talk
面前错过了let
:请注意,不推荐使用as of beta.17来使用
#...
来声明结构指令(如NgFor)中的局部变量 . 请改用let
.<div *ngFor="#talk of talks">
现在变成<div *ngFor="let talk of talks">
原始答案:
我在
talk
面前错过了#
:很容易忘记
#
. 我希望Angular异常错误消息代替:you forgot that # again
.导致OP错误的另一个错误可能是使用
in
:而不是
of
:这个声明在Angular2 Beta版本中使用.....
此后使用 let 而不是 #
let 关键字用于声明局部变量
就我而言,这是一封小信
f
. 我正在分享这个答案,因为这是谷歌的第一个结果make sure to write
*ngFor
对我来说,长话短说,我无意中降级为角度-β-16 .
The let ... syntax is ONLY valid in 2.0.0-beta.17+
如果您对此版本以下的任何内容尝试let语法 . 您将生成此错误 .
升级到angular-beta-17或使用#item in items语法 .
在我的情况下,我犯了从文档中复制
*ng-for=
的错误 .https://angular.io/guide/user-input
如果我错了,请纠正我 . 但似乎
*ng-for=
已改为*ngFor=