Ada*_*hts 18 ember.js ember-cli
在Ember 1.13中,以下代码生成警告:
{{#each widgetNames as |widgetName|}}
{{component widgetName removeWidget="removeWidget"}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)
其中widgetNames是父控制器中的字符串数组.
widgetNames: []
Run Code Online (Sandbox Code Playgroud)
在恩伯1.13我现在得到这个警告:
警告:在
{{each}}未指定密钥的情况下使用可能会导致异常行为.请指定一个key标识正在迭代的每个项目的唯一值.例如{{each model key="@guid" as |item|}}.
这很容易修复您典型的模型场景,但如何为字符串数组指定键?
编辑:当迭代字符串数组时,此问题处理您现在在Ember 1.13中获得的警告.如果你点击这个警告你没有明确地寻找@index参数,比如在emberjs中的#each中访问索引.事实上,Artych的答案显示了两个可能的使用密钥,这些密钥与emberjs中#each中的访问索引的答案不相关或存在,因为这是@index参数本身特有的.
art*_*ych 31
更新(Jun,18)
在Ember 1.13.2 key="@identity"中使用默认值,以防止用户必须key=为每次{{each}}调用指定一个.
@guid并且@item不赞成使用新的默认值.
https://github.com/emberjs/ember.js/releases/tag/v1.13.2 https://github.com/emberjs/ember.js/pull/11461
=================回答Ember 1.13,1.13.1 =========
你可以使用key="@index"或key="@item".
key (docs)有一些特殊值:
@index - 数组中项的索引.@item - 数组本身的项目.这只能用于字符串或数字的数组.@guid- 为每个对象生成唯一标识符(使用Ember.guidFor).
{{#each widgetNames key="@index" as |widgetName|}}
{{component widgetName removeWidget="removeWidget"}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2986 次 |
| 最近记录: |