我有一个计算后的属性,该属性不会重新计算,并且在首次显示页面时会卡住。
totalSpeed: function() {
return this.get('job') ? parseInt(this.get('job').get('speed')) + parseInt(this.get('speed')) : parseInt(this.get('speed'));
}.property('job','job.speed','speed'),
我的对象中定义的速度
speed: DS.attr('number', {defaultValue: 0}),
速度在我的工作对象中定义
speed: DS.attr('number'),
我可以分别输出作业的速度和对象的速度,它们显示良好。如果我尝试输出我的totalSpeed属性,我会得到NaN。如果我更改job.speed或speed,totalSpeed将更新并正确显示。
有谁知道为什么在初始负载下totalSpeed不显示?
如果我记录totalSpeed返回的值,例如,如果speed为8并且job.speed为8
N
16
16
最佳答案
Matt,我认为您对不加载的关系是正确的,我在加载模型(在一个控制器中有多个模型)的方式有点昧。我最终使用了Em.RSVP.hash,一切正常。
我有什么
App.CharacterEditRoute = Ember.Route.extend({
authRedirectable: true,
model: function(model) {
var auth = this.container.lookup('auth:main');
return this.get('store').find('user',auth.get('userId'));
},
setupController : function(controller, model){
controller.set("model", model.get('profile').get('currentCharacter'));
controller.set('races',this.get('store').findAll('race'));
controller.set('jobs',this.get('store').findAll('job'));
}
});
我现在有什么
App.CharacterEditRoute = Ember.Route.extend({
authRedirectable: true,
model: function(model) {
var auth = this.container.lookup('auth:main');
return Em.RSVP.hash({
user: auth.get('user'),
races: this.get('store').findAll('race'),
jobs: this.get('store').findAll('job')
});
},
setupController : function(controller, model){
controller.set('model',model);
}
});