模特:
Ext.ns('Workout.Models.user');
Ext.regModel('User', {
fields: [{
name: 'member_id',
type: 'int'
}, {
name: 'first_name',
type: 'string'
}, {
name: 'last_name',
type: 'string'
}, {
name: 'username',
type: 'string'
}, {
name: 'password',
type: 'string'
}, {
name: 'dob',
type: 'date',
dateFormat: 'Y-m-d'
}, {
name: 'email_address',
type: 'string'
}, {
name: 'is_active',
type: 'int'
}],
proxy: {
type: 'ajax',
format: 'json',
url: '../../_dev/json_fixtures/users.json',
reader: {
type: 'json',
root: 'users'
},
root: 'users'
}
});
商店:
Ext.ns('Workout.Stores');
Workout.Stores.user = new Ext.data.Store({
model: 'User',
storeId : 'Workout.Stores.user',
sorters: [
'last_name',
'first_name',
'member_id'
],
autoLoad: true
});
网格:
Ext.ns('Workout.User');
Workout.User.grid = new Ext.grid.Panel({
store: 'Workout.Stores.user',
columns:[{
text: 'Created At',
dataIndex: 'created_at'
}, {
text: 'First Name',
dataIndex: 'first_name'
}]
});
JSON文件
{
"users":[{
"created_at":"2011-04-01 14:13:34",
"member_id":"14453",
"first_name":"Jemima",
"last_name":"Petersen",
"username":"jpeterson",
"password":"TDW29HOH7WY",
"dob":"1960-07-03",
"email_address":"at.velit.Pellentesque@sociis.com"
}]
}
我加载HTML页面时,网格为空。但是,如果我通过data
参数向商店提供原始数据,则会加载。如果我通过控制台手动调用User.load()
,则没有任何反应。如果我调用User.load()
并传入一个有效的JSON对象,则没有任何反应。
有什么东西我缺少/做得不对吗?
答案 0 :(得分:2)
您已完成所有设置网格面板高度的操作。您需要设置高度以显示记录。以下是我将添加到网格面板配置中的内容:
height: 300
现在,除此之外,您还有其他问题,例如您未在用户模型中定义created_at
。如果您计划在网格中显示值,则还需要更新模型。
答案 1 :(得分:0)
Ext.define(
'BK.store.Categories'
, { extend : 'Ext.data.Store'
, model : 'BK.model.Category'
, autoload : true
, proxy : { type : 'ajax'
, format : 'json'
, root : 'results'
, api : { read : 'data/data1.json' }
, reader : new Ext.data.JsonReader({ type : 'json'
, root : 'results'
, successProperty : 'success'
})
}
}
);
当我在商店中使用硬编码的数据时,它工作正常(因此模型,视图,控制器都可以),一旦我使用代理,它的行为就像自动加载是假的,没有网络请求