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 2.3.1中的idProperty_Extjs_Sencha Touch_Getter - Fatal编程技术网

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值。太棒了!工作得很有魅力。既然您提到了它,我打算尝试使用商店,但我需要访问模型的关联。再次感谢!