使用查询时,模型不会更新

时间:2014-03-13 20:29:15

标签: ember.js ember-data

如果我使用,模型会自动更新:

ST.FiltersSymbolsRoute = Ember.Route.extend({
  model: function() {
  return this.store.find('filter');
  }
});

但是当我引入查询时,模型不会自动更新:

ST.FiltersSymbolsRoute = Ember.Route.extend({
  model: function() {
  return this.store.find('filter', {isSymbol: true});
  }
});

这里是小提琴:http://jsbin.com/yeyiroyo/1/2

要复制该错误,请单击符号,单击" +",键入内容,然后按Enter键您将注意到没有任何反应,但如果您单击用户,则再次符号 - 您和#39; ll注意到模型已更新。我们如何才能立即更新?

我认为我需要做的是在这里刷新模型的钩子:

filter.save().then(function(){
  //reload the model
});

1 个答案:

答案 0 :(得分:1)

查询将返回记录数组而不是单个记录。

  model: function() {
    return this.store.find('filter', {isSymbol: true}).then( 
      function(results) {
        return results.get('firstObject')
      }
    );
  }

如果要返回记录数组并自动填充,请执行以下操作:

model: function() {
   return this.store.filter('filter', {isSymbol: true}, function(record) {
      return record.get('isSymbol') === true;
   });
}

这是一篇很好的写作。

http://emberjs.com/guides/models/frequently-asked-questions/