我正在尝试从代理中加载一个列表,该代理使用rest从服务器获取数据。我无法弄清楚我做错了什么,但我没有在Chrome的网络通话记录中看到任何GET请求/餐馆。最初我想也许控制器没有被包括在内,但它就在那里,当我在商店中添加数据时它会填充。这不会抛出任何错误,所以我无法调试它。我已经完成了我能找到的每一个可能的教程以及文档。非常感谢任何帮助或见解。
控制器:
Ext.define('Appetize.controller.Restaurants', {
extend: 'Ext.app.Controller',
config: {
models: ['Restaurant'],
views: [
'RestaurantList',
],
refs: {
},
control: { }
}
}
型号:
Ext.define('Appetize.model.Restaurant', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'id'},
{name: 'name'},
{name: 'delivers'},
{name: 'active'}
]
}
});
存储
Ext.define('Appetize.store.Restaurants', {
extend: 'Ext.data.Store',
requires: ['Appetize.model.Restaurant'],
config: {
model: 'Appetize.model.Restaurant',
proxy: {
type: 'rest',
url: '/restaurants',
autoLoad: 'true'
}
}
});
查看:
Ext.define('Appetize.view.RestaurantList', {
extend: 'Ext.List',
xtype: 'restaurantListCard',
config: {
iconCls: 'home',
title: 'Restaurants',
id: 'restaurantList',
store: 'Restaurants',
onItemDisclosure: true,
itemTpl: '{name}'
}
});
答案 0 :(得分:2)
事实证明我在错误的地方使用了autoLoad。它不应该在代理设置中。相反,它应该在代理之外作为配置的一部分。
Ext.define('Appetize.store.Restaurants', {
extend: 'Ext.data.Store',
requires: ['Appetize.model.Restaurant'],
config: {
model: 'Appetize.model.Restaurant',
proxy: {
type: 'rest',
url: '/restaurants',
},
autoLoad: 'true'
}
});