【问题标题】:idProperty in Sencha Touch 2.3.1Sencha Touch 2.3.1 中的 idProperty
【发布时间】:2014-04-07 05:06:06
【问题描述】:

我有模型:

 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();

通过 Ajax 抓取 json 数组并因此插入模型中没有任何问题。

但是,当我尝试从模型中访问 id 时,

console.log('address.id ' + address.id);

我得到了 ext-record-n 形式的东西(其中 n 甚至没有映射到我的地址表中的 id)。如何引用此表中 id 列的实际值?我试过这个,但不成功:https://github.com/tomalex0/SenchaTouch-v2-SqliteProxy/issues/3

【问题讨论】:

    标签: extjs sencha-touch getter


    【解决方案1】:

    将 id 字段添加到 fields 数组将导致代理创建以列 id 作为 AUTOINCREMENT 字段的数据库表。

    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);
    

    【讨论】:

    • 我刚试过这个 Jeff,但它表现出相同的行为。这是输出示例:地址 id 是 ext-record-24 ... 有什么想法吗?
    • 抱歉,直接使用模型而不是使用商店时,它的工作方式有点不同。我编辑了答案以获取传递给 save 方法的回调函数中的 id 值。
    • 甜蜜!像魅力一样工作。既然你提到了它,我打算尝试使用商店,但我需要访问模型的关联。再次感谢!
    猜你喜欢
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多