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
fileds이므로 값을 계산할 수 없으며이 도우미의 결과는 NaN입니다.
이후모든 대답이로드됩니다.
어쨌든 App.PollsRoute
또는 내 도우미에서 관련 객체를 강제로드 할 수 있습니까?
당신이 도우미에 대한 설명서 http://emberjs.com/guides에 가면'helper'는 registerBoundHelper' – intuitivepixel
'에 해당/templates/writing-helpers/"DEPENDENCIES"섹션을 찾으십시오. 속성 변경을 관찰하는 방법과 http://emberjs.com/api/classes/Ember.Handlebars로 이동하는 방법을 찾을 수 있습니다. .html # method_registerBoundHelper 당신은 그렇게 할 필요가 없다는 것을 알게 될 것입니다. – fanta
하지만 그래서'App.AnswersRoute'에서 나는 이것을해야만했다'var poll = App.Poll.find ('1'); poll.get ('store'). findMany (App.Answer, [ '3', '4']); 반환 투표; – redexp