![](/img/trans.png)
[英]Ember Handlebars helper options.inverse undefined is not a function
[英]helper in ember is receiving “undefined”
我在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>
是的,我已經通過使用component來做到這一點,在component中,您可以編寫這些計算出的屬性並在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 ;})
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.