bg4*_*451 3 html javascript handlebars.js ember.js
我有一个名为Course的Model,它有一个名为users的数组变量.有没有办法限制用户的ID结果,而不是{{#each}}呈现每个ID?
这样
<script type="text/x-handlebars" data-template-name="course">
{{#each user in users 5}}
{{user.name}}
{{/each}}
</script>
Run Code Online (Sandbox Code Playgroud)
将显示前5个ID而不是存储在用户中的每个id?
这是我正在使用的Ember数据模型
App.Course = DS.Model.extend({
//Attributes
name: DS.attr('string'),
description: DS.attr('string'),
//Relations
users: DS.hasMany('App.User'),
});
Run Code Online (Sandbox Code Playgroud)
我在创建registerHelper时尝试了多次,但是当它出现'a in b'时似乎总是出错.任何帮助或想法将不胜感激.非常感谢你!
#each与使用#each帮助程序在数组上循环时,您可以采用不同的方法来显示有限数量的项目,而不是修改帮助程序.
有关可能的实现,请参阅此
App.IndexRoute = Ember.Route.extend({
model: function() {
return [
Ember.Object.create({id:1, name:'Red'}),
Ember.Object.create({id:2, name:'Green'}),
Ember.Object.create({id:3, name:'Blue'})
];
}
});
App.IndexController = Ember.ArrayController.extend({
limitedContent: function() {
return this.get('content').splice(0, 2);
}.property('content')
});
Run Code Online (Sandbox Code Playgroud)
该.property('content')定义绑定到控制器的内容和需要照顾的#each助手重新渲染时content的变化.
然后在你的模板中循环limitedContent而不是content:
<script type="text/x-handlebars" data-template-name="course">
{{#each color in limitedContent}}
{{color.name}}
{{/each}}
</script>
Run Code Online (Sandbox Code Playgroud)
这里有一个工作的jsbin,展示了所提到的概念.
希望能帮助到你