如何在ember数据中使用store.all加载路由?

时间:2014-07-18 17:57:25

标签: ember.js ember-data

在我的应用程序中,我在用户登录后正在预加载所有必需的模型。除了在我调用store.all而不是store.find时加载路由不起作用时,一切都很好。

App.PhrasesRoute = Ember.Route.extend
    model: ->
        return @store.all("phrase")

模型Phrase有很多记录(有时甚至是一千个),每个记录都显示在车把的每个循环中。大约需要一半的时间。用户在这段时间内只能看到短暂的滞后。

每次用户调用路由时从服务器获取所有数据时都不会出现此问题。

App.PhrasesRoute = Ember.Route.extend
    model: ->
        return @store.find("phrase")

我认为store.all没有返回任何承诺。如何从store.all或deley返回模型手动返回?

1 个答案:

答案 0 :(得分:1)

App.PhrasesRoute = Ember.Route.extend({ 
  model: function() {
    var self = this;

    return new Ember.RSVP.Promise(function(resolve) {
      Ember.run.later(this, function() {
        resolve(self.store.all('phrase'));
      }, 1000);
    });
  }
});