Ember JS:返回NaN的计算财产

时间:2014-03-18 16:11:24

标签: javascript ember.js

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

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

1 个答案:

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

});