小编web*_*aya的帖子

Ember DS.Store.findAll()返回空集合

嘿,我需要修改一些从DataStore获取的记录.如果我在路由器中添加以下代码,我可以看到请求传递给我的模板,但我无法修改集合的每个请求,因为集合是空的.

model() {
  return this.store.findAll('user').then(function(users) {
    console.log(users.get('length')); // 0
    return users;
  });
}
Run Code Online (Sandbox Code Playgroud)

我认为当从服务器获取所有记录时,promise会得到解决,但事实并非如此.或者我完全错过了什么.

我还尝试使用相同的结果修改afterModel回调中的模型.

我正在使用Ember 1.13.0(使用Ember-CLI),Ember-Data 1.13.4和ember-cli-mirage来模拟我的HTTP请求.

更新: 我设法为此问题创建了一个解决方法.在我的控制器中,我创建了一个新属性,它监听模型.@ each然后我能够修改模型并将其传递给视图.

export default Ember.Controller.extend({
  users: function() {
    return this.get('model.users').filter(function(user) {
      // The Promise is resolved twice
      // The first time with an empty model and the second time with 
      // the actual data. So I filter the empty model. 
      return user.get('id');
    }).map(function(user) {
      // do fancy stuff with our user
      return user
    });
  }.property('model.@each')
});
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data ember-cli-mirage

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

标签 统计

ember-cli-mirage ×1

ember-data ×1

ember.js ×1