Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs Sencha Touch-扩展存储-构造函数调用_Extjs - Fatal编程技术网

Extjs Sencha Touch-扩展存储-构造函数调用

Extjs Sencha Touch-扩展存储-构造函数调用,extjs,Extjs,我在玩sencha,创建了一个包含商店和模型的列表: 主要内容: 商店: Ext.define('store.Test', { extend: 'Ext.data.Store', model: 'model.User', data: [ { firstName: 'Ed', lastName: 'Spencer', age: 30 }, { firstName: 'Tommy', lastName: 'Maintz', age: 41 }, { firstName

我在玩sencha,创建了一个包含商店和模型的列表:

主要内容:

商店:

Ext.define('store.Test', {
extend: 'Ext.data.Store',

model: 'model.User',
data: [
    { firstName: 'Ed',    lastName: 'Spencer', age: 30 },
    { firstName: 'Tommy', lastName: 'Maintz', age: 41 },
    { firstName: 'Aaron', lastName: 'Conran', age: 24 },
    { firstName: 'Jamie', lastName: 'Avins', age: 76 }
]
});
Ext.define('store.Test', {
extend: 'Ext.data.Store',
myModel: null,

constructor : function(model) {
    myModel = model;
}, 

model: this.myModel,

data: [
    { firstName: 'Ed',    lastName: 'Spencer', age: 30 },
    { firstName: 'Tommy', lastName: 'Maintz', age: 41 },
    { firstName: 'Aaron', lastName: 'Conran', age: 24 },
    { firstName: 'Jamie', lastName: 'Avins', age: 76 }
]
});
Ext.define('store.Test', {
extend: 'Ext.data.Store',

model: 'model.User', //only set in case that model is not passed when created

data: [
    { firstName: 'Ed',    lastName: 'Spencer', age: 30 },
    { firstName: 'Tommy', lastName: 'Maintz', age: 41 },
    { firstName: 'Aaron', lastName: 'Conran', age: 24 },
    { firstName: 'Jamie', lastName: 'Avins', age: 76 }
]
型号:

Ext.define('model.User', {
extend: 'Ext.data.Model',
fields: [
    { name: 'firstName', type: 'string' },
    { name: 'lastName', type: 'string' }
]
});
在这一点上,一切正常

然后我创建了第二个存储,它有另一个字段“age”。我现在想要的是将一个参数“model”传递到存储,以便能够在不同的模型之间“切换”。 我试过这样的方法:

商店:

Ext.define('store.Test', {
extend: 'Ext.data.Store',

model: 'model.User',
data: [
    { firstName: 'Ed',    lastName: 'Spencer', age: 30 },
    { firstName: 'Tommy', lastName: 'Maintz', age: 41 },
    { firstName: 'Aaron', lastName: 'Conran', age: 24 },
    { firstName: 'Jamie', lastName: 'Avins', age: 76 }
]
});
Ext.define('store.Test', {
extend: 'Ext.data.Store',
myModel: null,

constructor : function(model) {
    myModel = model;
}, 

model: this.myModel,

data: [
    { firstName: 'Ed',    lastName: 'Spencer', age: 30 },
    { firstName: 'Tommy', lastName: 'Maintz', age: 41 },
    { firstName: 'Aaron', lastName: 'Conran', age: 24 },
    { firstName: 'Jamie', lastName: 'Avins', age: 76 }
]
});
Ext.define('store.Test', {
extend: 'Ext.data.Store',

model: 'model.User', //only set in case that model is not passed when created

data: [
    { firstName: 'Ed',    lastName: 'Spencer', age: 30 },
    { firstName: 'Tommy', lastName: 'Maintz', age: 41 },
    { firstName: 'Aaron', lastName: 'Conran', age: 24 },
    { firstName: 'Jamie', lastName: 'Avins', age: 76 }
]
在主文件中:

[...]
        store: Ext.create('store.Test', {
           model: 'model.UserWithAge'
        }),
[...]
但谷歌Chrome给了我:

Uncaught TypeError: Object [object Object],[object Object],[object Object],[object Object] has no method 'getRange'

有什么提示我做错了什么吗?

没关系,这比我想的容易多了。 在创建存储时,只需传递模型就足够了,而不是像我allready所做的那样与构造函数或类似的东西混为一谈:

主要内容:

商店:

Ext.define('store.Test', {
extend: 'Ext.data.Store',

model: 'model.User',
data: [
    { firstName: 'Ed',    lastName: 'Spencer', age: 30 },
    { firstName: 'Tommy', lastName: 'Maintz', age: 41 },
    { firstName: 'Aaron', lastName: 'Conran', age: 24 },
    { firstName: 'Jamie', lastName: 'Avins', age: 76 }
]
});
Ext.define('store.Test', {
extend: 'Ext.data.Store',
myModel: null,

constructor : function(model) {
    myModel = model;
}, 

model: this.myModel,

data: [
    { firstName: 'Ed',    lastName: 'Spencer', age: 30 },
    { firstName: 'Tommy', lastName: 'Maintz', age: 41 },
    { firstName: 'Aaron', lastName: 'Conran', age: 24 },
    { firstName: 'Jamie', lastName: 'Avins', age: 76 }
]
});
Ext.define('store.Test', {
extend: 'Ext.data.Store',

model: 'model.User', //only set in case that model is not passed when created

data: [
    { firstName: 'Ed',    lastName: 'Spencer', age: 30 },
    { firstName: 'Tommy', lastName: 'Maintz', age: 41 },
    { firstName: 'Aaron', lastName: 'Conran', age: 24 },
    { firstName: 'Jamie', lastName: 'Avins', age: 76 }
]
}))