我在ember中有一个包含两个单独列的组件。我正在使用一个帮助器来获取数组并将该数组拆分为两个,在第一列显示均衡,在左侧显示赔率。在控制台中,它显示帮助程序正在接收未定义的对象。
index.hbs:
<div class="row" style="padding:0% 3%">
{{component numbers=model}}
</div>
index.js:
import Ember from 'ember';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin, {
model() {
return this.store.findAll('number');
}
});
component.hbs(包含两列的组件):
<div class="row">
<div class="small-6 columns">
{{#each (twoColumns numbers 1) as |number|}}
<h3><b>{{number.value}}</b></h3>
<h6>{{number.title}}</h6>
{{/each}}
</div>
{{#each (twoColumns numbers 2) as |number|}}
<h3><b>{{number.value}}</b></h3>
<h6>{{number.title}}</h6>
{{/each}}
</div>
</div>
twoColumns.js(助手):
import Ember from 'ember';
export function twoColumns(params) {
let arrayToSplit = params[0];
let column = params[1];
Ember.Logger.info(arrayToSplit); //this prints an empty array
var i;
var col1 = [];
var col2 = [];
for(i=0; i<arrayToSplit.length; i+=1) {
if(i%2==0) {
col1.push(byTheNumbers[i]);
} else {
col2.push(byTheNumbers[i]);
}
}
if (column == 1) {
return col1;
} else {
return col2;
}
}
export default Ember.Helper.helper(twoColumns);
此外,如果我执行以下操作,则数组中的所有元素都显示正常:
<div class="row">
<div class="small-12 columns">
{{#each numbers as |number|}}
<h3><b>{{number.value}}</b></h3>
<h6>{{number.title}}</h6>
{{/each}}
</div>
答案 0 :(得分:0)
是的我通过使用组件这样做了,在组件中你可以编写这些计算属性并在component.hbs中使用。
evenItems: Ember.computed('numbers.[]', function() {
return this.get('numbers').filter(function(num){ return num.value % 2 === 0 })
}),
oddItems: Ember.computed('numbers.[]', function(number) {
return this.get('numbers').filter(function(num){ return num.value % 2 !== 0 ;})
})