我有一个计算后的属性,该属性不会重新计算,并且在首次显示页面时会卡住。

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);
    }

});

07-28 11:10