无法在ember中解析API响应

时间:2016-12-09 22:17:29

标签: ember.js ember-data restify

我正在努力学习EmberJS并解决问题。我有get方法API以及以下响应:

 {"products":[{"id":1,"name":"lappy1"},{"id":2,"name":"lappy2"}]}

我在浏览器的网络日志中收到此回复。

我的产品路线如下:

 import Ember from 'ember';
      export default Ember.Route.extend({
          model() {
              return {
                  products :this.get('store').findAll('product')
              };
          }
      });

我的product.hbs是:

<div>
<div class="row">
    <div class="col-md-4"><b>id</b></div>
    <div class="col-md-4"><b>Name</b></div>     
</div>
{{#each model.products as |product|}}
    <div class="row">
        <div class="col-md-4">{{product.id}}</div>
        <div class="col-md-4">{{product.name}}</div>
    </div>
{{/each}}
</div>

我的产品型号是:

import DS from 'ember-data';

export default DS.Model.extend({
    name:  DS.attr('string')
});

日志中没有任何错误,但我的页面只显示标题部分,即

<div class="col-md-4"><b>id</b></div>
<div class="col-md-4"><b>Name</b></div> 

我缺少哪一件事?

1 个答案:

答案 0 :(得分:0)

安装Chrome Ember插件并使用Chrome进行调试。

我假设您使用的是RESTAdapter?

您的Route model挂钩会返回一个对象,而不是一个承诺。这有点奇怪,我建议使用哈希:

model() {
  return Ember.RSVP.hash({
    products: this.store.findAll('product')
  });
}

或者,您可以返回调用商店的结果:

model() {
  return this.store.findAll('product');
}

但在这种情况下,您可以将模板更改为仅使用model而不是model.products