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。