什么是数据类型以及如何初始化它?

时间:2011-03-05 08:26:16

标签: javascript jquery extjs

    
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支持?

我的问题是:

  1. Ext.data.Store(...)的参数类型是什么?

  2. 还有,数据类型?

  3. 在这种情况下,如何动态初始化数据? (我有很多数据,所以静态分配是不可取的。)

  4. 非常感谢!

4 个答案:

答案 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 : [{…},…]是一个填充了更多对象的简单数组。