如何在ember-data模型上进行泛型查找后劫持promise解析?

Tor*_*ups 3 javascript promise ember.js ember-data

我需要手动检查从基本查找返回的ember-data模型(此模型未绑定到模板,而是需要动态应用某些逻辑)

到目前为止,我尝试了以下(没有运气)

App.Foo.find().then(function(model) {
  console.log("here with the ember-data payload");
  console.log(model.get('length'));
}, function(error) {
  console.log("broken");
});
Run Code Online (Sandbox Code Playgroud)

成功块确实触发但它似乎总是返回0结果,但是当我在chrome中查看网络选项卡时,它显示了一个有效的json有效负载,它在我正在使用的这个promise钩子之外工作.

是否有可能用ember-data rev 11劫持承诺解决方案?

Shi*_*nko 5

App.Foo.find()模型的返回列表,即a DS.AdapterPopulatedRecordArray,它不是数组,因此没有length属性.但它有一个内容属性,它是一组模型.所以在你的例子中,你应该使用console.log(model.content.length);它来使它工作:

App.Foo.find().then(function(result) {
  console.log("here with the ember-data payload");
  console.log(result.content.length);
  console.log(result.objectAt(0));
}, function(error) {
  console.log("broken");
});
Run Code Online (Sandbox Code Playgroud)

请注意,您不能使用[]运算符DS.AdapterPopulatedRecordArray,因为它不是数组.请参阅DS上的Ember指南.你应该使用objectAt而不是:result.objectAt(0);.