store.push 没有反映在带有 ember-cli-pagination 的模板上

store.push not reflecting on template with ember-cli-pagination

我是 Ember.js 的新手,我正在尝试在收到 ajax 请求后向商店添加对象。

问题是如果我使用ember-cli-pagination.

如果我在模型中使用 this.store.findAll,它可以工作,但是当我使用 this.findPaged 时,它不会。

我正在使用 ember-inspector 并且对象出现在商店中,只是没有出现在浏览器中。

我的代码:

import Ember from 'ember';
import RouteMixin from 'ember-cli-pagination/remote/route-mixin';

export default Ember.Route.extend(RouteMixin, {
  actions: {
    create: function(email) {
      let adapter = Ember.getOwner(this).lookup('adapter:application');
      let url = adapter.buildURL('billing/delivery-files');
      let store = this.get('store');
      let modelName = 'billing/delivery-file';

      return adapter.ajax(url, 'POST', {
        email: email
      }).then(function(data) {
        var normalized = store.normalize(modelName, data.object);
        store.push(normalized);
      });
    }
  },
  model(params) {
    return this.findPaged('billing/delivery-file',params); //does not work
    // return this.store.findAll('billing/delivery-file'); //works
  }
});

尝试了此 issue 中的解决方案,但根本不起作用。

我错过了什么?

想通了!

推送到商店后,我需要将对商店对象的引用推送到分页数组。不知道为什么,但它就像一个魅力!

model.content.pushObject(pushedRecord._internalModel);

在我的例子中,我希望它位于数组的第一个位置,所以我这样做了:

model.content.insertAt(0, pushedRecord._internalModel);