如何刷新Ember模型和计算属性(AdapterPopulatedRecordArray)?

时间:2014-05-15 21:14:28

标签: ember.js ember-data

我无法获得计算属性进行重新计算。

我的路线如下:

App.DiagnosticsRoute = Ember.Route.extend({
  model: function() {
      return Ember.RSVP.hash({
          lights: this.store.find('light'),
          networkInterfaces: this.store.find('networkInterface'),
          networks: this.store.find('network', { diagnostics: "1"})
      });
  },
});

我的控制器具有以下计算属性:

  networksCount: function() {
    var networks_count = this.get('networks.length');
    if (0 == networks_count) return '(All Clear)';
    return networks_count;

  }.property('networks.length')

我想轮询服务器以刷新网络集合。我已将store.find(' network')放置在应用程序的其他位置,虽然chrome ember扩展显示数据已加载到商店中,但上述计算属性并未更新。 AdapterPopulatedRecordArray没有实现重新加载。我怎样才能让财产重新计算?

1 个答案:

答案 0 :(得分:0)

我通过How to update Ember's model periodically (such as in setInterval)?

找到了一个非常好的解决方案
  actions: {
    update: function() {
      this.set('networks',this.store.find('network'));
  }
  },
  networksCount: function() {
    var networks_count = this.get('networks.length');
    if (0 == networks_count) return '(All Clear)';
    return networks_count;

  }.property('networks.length')