demos.ListStore = new Ext.data.Store({
model: 'Contact',
sorters: 'firstName',
getGroupString : function(record) {
return record.get('firstName')[0];
},
data: [
{firstName: 'Julio', lastName: 'Benesh'},
{firstName: 'Julio', lastName: 'Minich'},
{firstName: 'Tania', lastName: 'Ricco'},
{firstName: 'Odessa', lastName: 'Steuck'},
{firstName: 'Nelson', lastName: 'Raber'},
{firstName: 'Tyrone', lastName: 'Scannell'},
{firstName: 'Allan', lastName: 'Disbrow'},
{firstName: 'Cody', lastName: 'Herrell'},
{firstName: 'Julio', lastName: 'Burgoyne'},
{firstName: 'Jessie', lastName: 'Boedeker'},
{firstName: 'Allan', lastName: 'Leyendecker'},
{firstName: 'Javier', lastName: 'Lockley'},
{firstName: 'Guy', lastName: 'Reasor'},
...,
...
]
})
据我了解,“数据”不是javascript的字典或数组类型。 这种数据类型是否还受jQuery支持?
我的问题是:
Ext.data.Store(...)的参数类型是什么?
还有,数据类型?
在这种情况下,如何动态初始化数据? (我有很多数据,所以静态分配是不可取的。)
非常感谢!
答案 0 :(得分:2)
1)Ext.data.Store(...)的参数类型是什么?
它只是一个普通的对象,有一堆属性被用作关联数组。几乎所有Ext JS中的函数参数都是使用像这样的单个对象传入的。在Ext JS术语中,他们称之为“配置对象”。
2)还有,数据的类型?
数据是一个数组。数组的每个元素都是一个对象,其中有一组属性用作关联数组,类似于Ext.data.Store()
的参数。
3)在这种情况下,我该如何动态初始化数据?
您可以声明一个空数组以启动并将其添加到配置对象中。然后单独声明每一行并将它们推入该数组,最后在调用new Ext.data.Store()
时使用配置对象。
希望这些代码示例不言自明。
var cfg = new Object(); // same as var cfg = {};
cfg.model = "Contact"; // one way to set a property
cfg["sorters"] = "firstName"; // another way to set a property
// one way to set the function
cfg.getGroupString = function(record) {
return record.get('firstName')[0];
};
// here's another way to set the function
function myGetGroupString(record) {
return record.get('firstName')[0];
}
cfg.getGroupString = myGetGroupString;
// initializing data long-hand
cfg.data = new Array(); // same as cfg.data = [];
var record1 = new Object();
record1.firstName = "Mike";
record1.lastName = "Lin";
cfg.data.push(record1);
// another way to define a record
var record2 = {firstName: "Jason", lastName: "Mraz"};
cfg.data.push(record2);
// cfg is just a plain old object used as an associative array/hash
demos.ListStore = new Ext.data.Store(cfg);
答案 1 :(得分:0)
该函数采用一个参数,是一个javascript对象类型。
{
model: 'Contact',
sorters: 'firstName',
getGroupString : function(record) {
return record.get('firstName')[0];
},
data: [ ... ] ;
}
这可以直接与变量关联,然后作为参数传递。
var param1 = {
model: 'Contact',
sorters: 'firstName',
getGroupString : function(record) {
return record.get('firstName')[0];
},
data: [ ... ]
}
数据是param1对象中的一个变量,它包含javascript对象数组。
答案 2 :(得分:0)
为什么不能将它初始化为空对象,然后用内容填充它?
反正: http://dev.sencha.com/deploy/dev/docs/source/Store.html#cls-Ext.data.Store
答案 3 :(得分:0)
传递给Ext.data.Store()
的参数是一个对象,a.k.a。一个字典或其他语言的关联数组。此对象的data
属性(data : [{…},…]
是一个填充了更多对象的简单数组。