我做错了什么?
import {bootstrap, Component} from 'angular2/angular2'
@Component({
selector: 'conf-talks',
template: `<div *ngFor="let talk in 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 'ngForIn' since it isn't a known native property
("<div [ERROR ->]*ngFor="let talk in talks">
尝试从“@angular/Common”导入导入{CommonModule};
以angular final形式作为*NGFOR
,*NGIF
全部存在于CommonModule
中
用让...of代替让...in!!
如果您是Angular(>2.x)的新手,并且可能是从Angular1.x迁移过来的,那么您很可能会混淆in
和of
。正如andreas在下面的注释中提到的,for..of
迭代对象的值
而for..in
迭代对象的属性
。这是ES2015推出的新特性。
只需更换:
<!-- Iterate over properties (incorrect in our case here) -->
<div *ngFor="let talk in talks">
与
<!-- Iterate over values (correct way to use here) -->
<div *ngFor="let talk of talks">
因此,必须将中的替换为
ngfor
指令中的以获取值。
因为这至少是我第三次在这个问题上浪费超过5分钟的时间了,我想我应该把这篇问答文章贴出来,我希望它能帮助到其他人...可能是我!
我在ngFor表达式中键入了in
而不是of
。
在2-beta.17之前,它应该是:
<div *ngFor="#talk of talks">
从Beta.17开始,使用let
语法,而不是#
。更多信息请参阅更新。
请注意,ngFor语法“desugars”如下:
<template ngFor #talk [ngForOf]="talks">
<div>...</div>
</template>
如果我们在中使用,它会变成
<template ngFor #talk [ngForIn]="talks">
<div>...</div>
</template>
由于
ngforin
不是具有同名输入属性的属性指令(类似于ngif
),因此Angular尝试查看它是否是template
元素的(已知本机)属性,而它不是,因此出现错误。
更新-从2-beta.17开始,使用
let
语法,而不是#
。这将更新以下内容:
<div *ngFor="let talk of talks">
请注意,ngFor语法“desugars”如下:
<template ngFor let-talk [ngForOf]="talks">
<div>...</div>
</template>
如果我们在
中使用,它会变成
<template ngFor let-talk [ngForIn]="talks">
<div>...</div>
</template>
是的,这可能是第一百次有人遇到这个问题,但没有解决办法对我有效。。。 我使用角2.0.0 rc和什么都不会工作,我想我错过了一些东西,但我不知道是什么 这是我的文件,它们都可以正确传输,是的,我尝试使用不推荐的路由,是的,我根据文档做了,两者都不起作用。 app.component.ts 主要的ts 指数html 其余的文件几乎都是教程中的复制粘贴,所以我不会用更多的代码来垃圾邮件。。。 更新,我
我必须动态地创建一个复选框列表 无法绑定到“for”,因为它不是已知的本机属性 angular2 新错误消息 未处理的promise拒绝:模板分析错误:无法绑定到“for”,因为它不是“label”的已知属性。 这是我的plnkr显示错误:http://plnkr.co/edit/aAQfWvHc7h7IBuYzpItO?p=preview 我的代码中哪里出错了?
我试图在这里遵循基本的Angular 2教程: https://angular.io/docs/js/latest/guide/displaying-data.html 我可以让angular应用程序加载并显示我的名字,代码如下: 但是,当我尝试添加字符串数组并尝试使用ng for显示它们时,它会抛出以下错误: 以下是代码: 我错过了什么?
我已经将我的应用程序从Angular 2升级到Angular 6版本。ng build--prod正在成功构建应用程序。我能够登录到我的应用程序和50%的功能是完美的工作,在一些选项不工作和抛出下面的异常:
我做错了什么? 错误是
最近开始玩《棱角2》了。到目前为止都很棒。因此,为了学习使用我开始了一个个人演示项目。 有了基本的路由设置后,我现在想从报头导航到一些路由,但由于我的报头是的父路由,所以我收到这个错误。 app.component.html header.component.html 现在我部分地理解了,我猜由于该组件是的包装器,所以不可能通过这种方式访问。那么,对于这样的场景,是否有可能从外部访问导航呢? 如果