1

我有一些模型之间共享一些属性。相似之处被考虑到了 mixins。

我尝试显示来自控制器的一些计算属性,但如果属性来自 mixin,则在模型中返回默认值。简而言之:

var StuffIndexController = Ember.ObjectController.extend({
    remaining: function(){
        // debugger;
        return this.get('seriousStaff');
    }.property('remaining')
});

我的模型是这样的:

Stuff = Ember.Object.extends(StaffMixin,{
  defprop:''

}

我的混音:

StaffMixin = Ember.Mixin.create({
   seriousStaff: '',
   other: function(){...}.property('other')
}

创建后我填充模型。如果在页面上我尝试显示seriousStaff我得到空字符串,而defprop我从模型中获取填充数据。令人不安的是,在模板中两者都seriousStaff得到了defprop正确显示。

4

1 回答 1

1

计算的属性应该与它们观察的属性有不同的名称,否则你自己会覆盖你的值。

StaffMixin = Ember.Mixin.create({ 
    seriousStaff: '',
    other: function(){...}.property('other')
}

应该是这样的

StaffMixin = Ember.Mixin.create({
       seriousStaff: '',
       other: '',
       computedOther: function(){...}.property('other')
   }

希望这可以帮助。

于 2013-07-19T14:40:37.993 回答