添加元素时,计算属性不在数组上更新

时间:2014-08-27 17:37:59

标签: ember.js ember-data ember-cli

我目前正在使用计算属性根据它的顺序对模型中包含的数组进行排序(这是在slide-group控制器中):

sortedSlides: function() {
    var slides = this.get('slides');
    var sortedSlides = slides.sortBy('order');
    return sortedSlides;
}.property('slides.@each.order')

A"幻灯片组"包含已订购幻灯片的列表。这适用于重新排序元素以及删除幻灯片。但是,如果我添加新幻灯片,则该属性永远不会被触发,也不会出现。

这是我创建新幻灯片的保存方法:

actions: {
    save: function() {      
        var slideGroup = this.modelFor('slide-group');

        var model = this.modelFor('slide-group.new-slide');
        model.set('slideGroup', slideGroup);
        model.save();

        this.get('controller').transitionToRoute('slide-group.index');
    },
}

我还尝试将'slides'添加到property(),但它没有帮助。 为什么在添加新幻灯片时计算的属性不会更新?

版本信息:
恩伯:v1.7.0
Ember-CLI:v0.0.41

编辑:这是我的模特,仅供参考:

slide.js:

export default DS.Model.extend({
  slideGroup: DS.belongsTo('slide-group'),
  name: DS.attr('string'),
  order: DS.attr('number'),
  widgetType: DS.attr('string'),
  duration: DS.attr('number'),
  parameters: DS.attr()
});

滑动group.js:

export default DS.Model.extend({
  name: DS.attr('string'),
  description: DS.attr('string'),
  screens: DS.hasMany('screen', {async: true}),
  slides: DS.hasMany('slide', {async: true})
});

0 个答案:

没有答案