我正在努力学习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>
我缺少哪一件事?
答案 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
。