如果您将多个参数传递给每个助手,它必须采用 #each foo in bar 的形式
If you pass more than one argument to the each helper, it must be in the form #each foo in bar
我正在使用 Ember 1.10.0、Ember Data beta 14.1 和 Ember LocalStorage Adapter 0.5.1。我有一个模板:
<h1>Dracula's blog</h1>
<ul>
{{#each post in model}}
<li>{{#link-to 'post' post}}{{post.title}}{{/link-to}}</li>
{{/each}}
</ul>
{{#link-to 'new-post' classNames="btn btn-primary"}}New scary post{{/link-to}}
一条路线:
Blogger.PostsRoute = Ember.Route.extend({
model: function() {
return this.store.find('post');
}
});
我依赖 Ember 根据返回的模型数组自动创建 ArrayController。
当我加载路线时,出现错误:
Uncaught Error: Assertion Failed: If you pass more than one argument to the each helper, it must be in the form #each foo in bar
如果我切换到 {{#each model as |post|}}
或 {{#each model}}
形式,我不会收到错误(除了第二种形式的弃用警告)。
我刚刚发现我仍在使用 Ember.Handlebars.precompile(template);
编译模板,这让我感到震惊!切换到 Ember.HTMLBars.compile(template);
解决了这个问题。感谢所有有用的评论,尤其是@Kalman - 尝试在 jsbin 中重现让我找到了解决方案。
我正在使用 Ember 1.10.0、Ember Data beta 14.1 和 Ember LocalStorage Adapter 0.5.1。我有一个模板:
<h1>Dracula's blog</h1>
<ul>
{{#each post in model}}
<li>{{#link-to 'post' post}}{{post.title}}{{/link-to}}</li>
{{/each}}
</ul>
{{#link-to 'new-post' classNames="btn btn-primary"}}New scary post{{/link-to}}
一条路线:
Blogger.PostsRoute = Ember.Route.extend({
model: function() {
return this.store.find('post');
}
});
我依赖 Ember 根据返回的模型数组自动创建 ArrayController。
当我加载路线时,出现错误:
Uncaught Error: Assertion Failed: If you pass more than one argument to the each helper, it must be in the form #each foo in bar
如果我切换到 {{#each model as |post|}}
或 {{#each model}}
形式,我不会收到错误(除了第二种形式的弃用警告)。
我刚刚发现我仍在使用 Ember.Handlebars.precompile(template);
编译模板,这让我感到震惊!切换到 Ember.HTMLBars.compile(template);
解决了这个问题。感谢所有有用的评论,尤其是@Kalman - 尝试在 jsbin 中重现让我找到了解决方案。