1
我有兩個型號Ember.js - 如何強制加載相關對象?
App.Poll = DS.Model.extend({
id: DS.attr('string'),
title: DS.attr('string'),
answers: DS.hasMany('App.Answer')
});
App.Answer = DS.Model.extend({
id: DS.attr('string'),
value: DS.attr('number')
});
App.Poll.FIXTURES = [{
id: '1',
title: 'PollTitle',
answers: ['3', '4']
}];
App.Answer.FIXTURES = [{
id: '3',
value: 1
},{
id: '4',
value: 2
}];
App.PollsRoute = Ember.Route.extend({
model: function(){
return App.Poll.find('1');
}
});
我創建的幫手,它計算的車型
Ember.Handlebars.helper('fieldSum', function(arr, ops){
var res = 0;
arr.forEach(function(item){
res += item.get(ops.hash.field);
});
return new Handlebars.SafeString(res);
});
<div class="count">{{fieldSum answers field="value"}}</div>
陣列指定字段的值,但在助手身上我得到空(非充電狀態)answers
,只有id
檔案,所以我不能算他們的數值,結果這個幫手是NaN
但是{{#each answers}}
所有答案都已經加載。
我可以以某種方式強制加載App.PollsRoute
或我的幫手中的相關對象嗎?
'helper'等同於'registerBoundHelper' – intuitivepixel
如果你去到文檔的輔助http://emberjs.com/guides/templates/writing-helpers /你會找到一個名爲「DEPENDENCIES」的部分,在那裏,你可以找到如何觀察屬性的變化,如果你去http://emberjs.com/api/classes/Ember.Handlebars .html#method_registerBoundHelper你會發現你不需要那樣做 – fanta
但是al所以'App.AnswersRoute'我不得不這樣做var var = App.Poll.find('1'); poll.get('store')。findMany(App.Answer,['3','4']);返回民意調查;' – redexp