我有以下型号:
Ext.define('my.workspace.Area', {
extend: 'Ext.data.Model',
idProperty: 'id',
fields: [
{name: 'id', type: 'string'},
{name: 'width', type: 'int',getterName:'getWidth',setterName:'setWidth'},
{name: 'height', type: 'int',getterName:'getHeight',setterName:'setHeight'}
]
});
如果我实例化这个模型,让我们这样说:
var area = Ext.create('my.workspace.Area');
我无法使用setter setWidth和setHeight为此实例设置值。但是我能够这样做:
area.set('width', someWidthValue);
area.set('height', someHeightValue);
我的问题是,当这个对象被seralized到json时,通过save()或sync()调用来存储包含这个实例,我得到:
...
"area": {
"data": {
"id": "someId",
"width": 260,
"height": 502
},
...
而不是:
...
"area": {
"id": "someId",
"width": 260,
"height": 502
},
...
所以我的问题是"数据"这个json的实体。我相信他与我在区域实例中设置字段值的方式有关。我错了这个假设吗?如果没有,设置这些字段的正确方法是什么?
感谢您的时间。
答案 0 :(得分:0)
我不是这方面的专家,但我希望这个链接能有所帮助
http://www.objis.com/formationextjs/lib/extjs-4.0.0/docs/api/Ext.data.Field.html
据我了解,[data]是您正在扩展的[Ext.data.Model]结构的一部分。
可以通过[数据]访问这些字段。
area.set('width', someWidthValue);
area.get('width');
如果你想使用setWidth之类的setter,你可以定义,如上面的链接所示。