我对Ember非常陌生,所以希望我只是在做一些愚蠢的事情,但是我遇到了很多随机问题,数据显示不正确,我现在在Ember Debugger中看到,直到我到达特定的模型数据端点,我的数据才会存在。例如,我有一个模板来显示所有产品,如下所示:
App.ProductsRoute = Ember.Route.extend({
model: function() {
return this.store.find('product');
}
});控制员:
App.ProductsController = Ember.ArrayController.extend({
itemController: 'product'
});模板:
<script type="text/x-handlebars" data-template-name="products">
<div class="row">
{{#each}}
{{name}}
{{/each}}
</div>
</script>点击端点'/products‘一开始什么都不会显示,但是如果我转到'/products/1’,我可以在视图(和Ember调试器中)看到产品数据,然后如果我导航回'/products‘,那么特定产品的数据(但没有其他数据)会正确显示。所以我对自己做错了什么感到非常困惑。如标题所示,如果这有助于缩小范围,我将使用DjangoRESTAdapter,这也是我的app.js
window.App = Ember.Application.create({});
window.api_location = 'http://localhost:8000/api';
App.ApplicationAdapter = DS.DjangoRESTAdapter.extend({
host: api_location,
pathForType: function(type) {
return Ember.String.underscore(type);
}
});
App.ApplicationSerializer = DS.DjangoRESTSerializer.extend({
});
App.Store = DS.Store.extend();预先感谢您的帮助,并让我知道其他代码片段是否会有帮助。
发布于 2014-09-01 23:27:56
好吧,我终于明白了:这是分页的问题。我不知道我们已经为Django REST Api设置了分页,所以它不是返回对象列表,而是返回结果对象,产品列表隐藏在一个“结果”属性中。因此,在我说服其他开发人员关闭分页之前,我可以修改我的所有查询:
this.store.find('product', {page_size:0});若要覆盖默认页大小,请执行以下操作。
编辑:我还在尝试修改服务器端的json响应,而不是在这个库:ember中使用djangorest适配器。希望这能节省一些人的挖掘..。
https://stackoverflow.com/questions/25613286
复制相似问题