Extjs Sencha Touch 2.3.1中的idProperty
我有一个模型:Extjs Sencha Touch 2.3.1中的idProperty,extjs,sencha-touch,getter,Extjs,Sencha Touch,Getter,我有一个模型: Ext.define('EvaluateIt.model.Address', { extend: 'Ext.data.Model', config: { idProperty: 'id', fields: [ {name: 'address', type: 'string'}, {name: 'city', type: 'string'}, {name: '
Ext.define('EvaluateIt.model.Address', {
extend: 'Ext.data.Model',
config: {
idProperty: 'id',
fields: [
{name: 'address', type: 'string'},
{name: 'city', type: 'string'},
{name: 'state', type: 'string'},
{name: 'zipcode', type: 'string'},
{name: 'county', type: 'string'}
],
proxy: {
type: "sql",
database: 'Test'
}
}
});
在我的控制器中,我将数据插入此模型,如下所示:
var address = Ext.create('EvaluateIt.model.Address', {
address: json[i].garden.address.address
});
address.save();
json数组是通过Ajax抓取的,因此可以毫无问题地插入到模型中
但是,当我尝试从模型中访问id时
console.log('address.id ' + address.id);
我得到了ext-record-n的形式(其中n甚至没有映射到我的地址表中的id)。如何引用此表中id列的实际值?我尝试了此操作,但未成功:将id字段添加到字段数组将导致代理创建列id为自动增量字段的数据库表
Ext.define('EvaluateIt.model.Address', {
extend: 'Ext.data.Model',
config: {
idProperty: 'id',
fields: [
{name: 'id', type: 'int'},
{name: 'address', type: 'string'},
{name: 'city', type: 'string'},
{name: 'state', type: 'string'},
{name: 'zipcode', type: 'string'},
{name: 'county', type: 'string'}
],
proxy: {
type: "sql",
database: 'Test'
}
}
});
代理将读取数据库创建的id值。您可以通过向模型保存方法传递回调函数来访问该值
var address = Ext.create('EvaluateIt.model.Address', {
address: json[i].garden.address.address
});
address.save(function(record) {
console.log('address.id ' + record.getId();
}, this);
我刚试过这个,杰夫,但它表现出同样的行为。下面是一个输出示例:地址id是ext-record-24。。。有什么想法吗?抱歉,当直接使用模型而不是使用商店时,它的工作方式有点不同。我编辑了我的答案,以获取传递给save方法的回调函数中的id值。太棒了!工作得很有魅力。既然您提到了它,我打算尝试使用商店,但我需要访问模型的关联。再次感谢!