Javascript Emberjs,每个块帮助器都是高级的
这是我的平面模型:Javascript Emberjs,每个块帮助器都是高级的,javascript,ruby-on-rails,ember.js,template-engine,handlebars.js,Javascript,Ruby On Rails,Ember.js,Template Engine,Handlebars.js,这是我的平面模型: [ { id: 1, title: '', body: '' }, { id: 2, title: '', body: '' }, { id: 3, title: '', body: '' }, { id: 4, title: '', body: '' }, // ... ] 这是我期望的模板: <div class="row"> <div class="col-md-4 col-md-offset-
[
{ id: 1, title: '', body: '' },
{ id: 2, title: '', body: '' },
{ id: 3, title: '', body: '' },
{ id: 4, title: '', body: '' },
// ...
]
这是我期望的模板:
<div class="row">
<div class="col-md-4 col-md-offset-2">
<h6>{{! item1 title }}</h6>
<p>{{! item1 body}}</p>
</div>
<div class="col-md-4 col-md-offset-1">
<h6>{{! item2 title}}</h6>
<p>{{! item2 body}}</p>
</div>
</div>
<div class="row">
<div class="col-md-4 col-md-offset-2">
<h6>{{! item3 title }}</h6>
<p>{{! item3 body}}</p>
</div>
<div class="col-md-4 col-md-offset-1">
<h6>{{! item4 title}}</h6>
<p>{{! item4 body}}</p>
</div>
</div>
<!-- ... -->
{{!item1 title}}
{{!item1 body}
{{!item2 title}}
{{!item2 body}
{{!项目3标题}
{{!item3 body}
{{!item4 title}
{{!item4 body}
什么是余烬方法来做到这一点
简单的each helper不会有帮助,因为模板将模型中的两个元素组合在一起
我应该更改模型、自定义阵列控制器、构建组件、编写模板帮助程序,还是有一个内置的解决方案来解决这个简单问题?您应该更改数据结构。我仍然会使用ArrayController,但同时我会在其上添加一个computed属性,将所有内容分组(我猜您的模式是每隔一个)
App.FooController=Em.ArrayController.extend({
groupedItems:function(){
变量组=[],
集团,,
model=this.get('model'),
len=this.get('length');
对于(var i=0;iYou可能需要一个数组控制器。查看数组控制器对我没有帮助,每个循环都有一个转折点,如果您查看预期的模板,它会在一次迭代中对两个项目进行分组。此“模型”是什么。[]“我不能只说模型搜索分组我发现了一个类似的问题哦,是的,相同的概念。不,你不能只说模型,如果你这样做了,它只会在数组本身被替换时更新,而不会在数组中添加/删除项时更新。”(如果这种情况永远不会发生,并且模型也永远不会被替换,那么将任何一个放置在计算属性依赖项中都可能是毫无意义的)。
App.FooController = Em.ArrayController.extend({
groupedItems: function(){
var groups = [],
group,
model = this.get('model'),
len = this.get('length');
for(var i = 0;i<len;i++){
if(i%2==0){
group = [];
groups.push(group);
}
group.push(model[i]);
}
return groups;
}.property('model.[]')
});
{{#each item in groupedItems}}
<div class="row">
<div class="col-md-4 col-md-offset-2">
<h6>{{ item.firstObject.title }}</h6>
<p>{{ item.firstObject.body}}</p>
</div>
<div class="col-md-4 col-md-offset-1">
<h6>{{item.lastObject.title}}</h6>
<p>{{item.lastObject.body}}</p>
</div>
</div>
{{/each}}