我有一个未重新计算的计算属性,并在首次显示页面时卡住。
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 为NaN 16 16
答案 0 :(得分:0)
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);
}
});