Ember.js 余烬1.13每个循环中的每个循环
如上所述,Ember 1.13需要Ember.js 余烬1.13每个循环中的每个循环,ember.js,Ember.js,如上所述,Ember 1.13需要{{each}帮助程序的一个键。从Ember 1.13.2开始,默认密钥为@identity 现在我正试图修复我的代码,我有一个嵌套在另一个循环中的each循环(一段显示日历的代码)。我得到以下错误: Uncaught Error: Duplicate key found ('(null)') for '{{each}}' helper, please use a unique key or switch to '{{#each model key="@inde
{{each}
帮助程序的一个键。从Ember 1.13.2开始,默认密钥为@identity
现在我正试图修复我的代码,我有一个嵌套在另一个循环中的each循环(一段显示日历的代码)。我得到以下错误:
Uncaught Error: Duplicate key found ('(null)') for '{{each}}' helper, please use a unique key or switch to '{{#each model key="@index"}}{{/each}}'.
但是,即使我添加一个@guid
作为键,仍然会显示错误。代码:
{{#each weeks key="@guid" as |week|}}
<tr>
{{#each week key="@guid" as |day|}}
<td class="day"></td>
{{/each}}
</tr>
{{/each}}
{{#每周键=“@guid”as | week |}
{{#每周键=“@guid”作为|天|}
{{/每个}}
{{/每个}}
我不明白。既然@guid
应该为每个对象创建一个唯一的标识符,为什么我仍然会发现这个重复键
错误
编辑:
我认为
找到的重复键
与嵌套的每个循环有关,这显然是错误的。在尝试按照基特勒的建议制作小提琴之后,我确实理解了我的问题(见答案) 经过反复试验,我确实明白了错误的原因
原因我的循环中的某些项
null
。Ember 1.13.x及以上版本尝试为每个项目添加id。由于null
表示无,第一个null项
get keynull
,因为余烬提供了一个无键对无键。下面的null项
也会得到一个nothing键,因为Ember对每个null项
都会这样做
错误因为助手要求每个项目都有一个唯一的id,所以Ember抛出一个
找到的重复键('(null)
错误;告诉程序员一些项目具有相同的id
解决方案修复这个问题非常简单,只需提供一个空对象(
{}
),而不是null
。由于一个空对象与另一个空对象不同,Ember将为每个空对象创建一个唯一的id
代码示例:。这是v1.13.x中的一个回归,预计将在修补程序(可能是v1.13.6)中解决 这是最后一个问题:
合并的拉取请求:您链接到states@guid和@item的问题被弃用,取而代之的是新的默认值。这只是我的问题,
新的默认值
在循环中包装循环时不起作用。如果你有一个“正常”循环,默认值会使它更容易(因为你不需要做任何事情)。如果你不使用它,你不需要密钥…@Kitler:如果我不提供密钥,我会出错…你能在一个确认中设置你的示例吗?确认:Ember 1.13.6确实解决了这个问题:->#11861[错误修复]更新HTMLBars以允许重复的{{each}钥匙。