小编Eri*_*kis的帖子

Model.find().then()在实际加载记录之前触发

我想加载一个完整的集合,然后剥离记录,一次一个地用作模型,而不是每次都进行到服务器的往返.

我已经想出如何使用Ember.Deferred返回一个承诺,但我无法在合适的时间得到解决的承诺.以下代码只输出"找到0"时间:

App.PersonRoute = Ember.Route.extend({
  model: function(params) {
    var name = "Erik";
    var promise = Ember.Deferred.create();
    App.people = App.Person.find();

    App.people.then(function() {
      console.log('Found ' + App.people.get('length'));
      var person = App.people.findProperty('name', name)
      promise.resolve(person);
    });

    return promise;
  }
});
Run Code Online (Sandbox Code Playgroud)

如果我将then()的主体包装在一个setTimeout中,并让它等待几秒钟,那么一切都很好.

我可以以某种方式绑定到另一个事件吗?我尝试了App.people.on('isLoaded'),但isLoaded始终是真的.

谢谢!

ember.js ember-data

6
推荐指数
1
解决办法
3084
查看次数

标签 统计

ember-data ×1

ember.js ×1