1

我有以下格式的 JSON:

{
    "id": 1,
    "arbitraryAttribute": "arbitraryValue",
    "thing": {
        "thingKey1": "thingValue1",
        "thinkKey2": "thingValue2"
    }
}

该模型表示如下:

Ext.define("MyModel", {
    extends: "Ext.data.Model",
    fields: [
        {name: "id", type: "string"},
        {name: "arbitraryAttribute", type: "string"},
    ],
    hasOne: [
        {
            model: "Thing",
            name: "thing"
        }
    ]
});

Ext.define("Thing", {
    extends: "Ext.data.Model",
    fields: [
        {name: "thingKey1", type: "string"},
        {name: "thingKey2", type: "string"}
    ]
});

代理是一个简单的 json 代理。它得到的 JSON 看起来像我展示的那样,但我的记录似乎对 Thing 模型一无所知。是否需要设置任何额外的管道才能让 MyModel 拉出嵌套的 Thing json?

4

2 回答 2

1

您忘记在 MyModel 中设置 thing_id。这在 ExtJs 中也根本不起作用。您现在可以通过 JSON 设置 thing_id,但不能像您所做的那样设置整个对象(而且应该如此)。

如果需要,它将通过模型代理自动加载完整的对象。

于 2012-07-30T10:22:14.803 回答
0
Ext.define('User', {
    extend:'Ext.data.Model',
    fields: ['id', 'name', 'status'],
    associations: [
        { type: 'hasOne', model: 'Status', associationKey: 'status'  }
    ]
});

Ext.define('Status', {
    extend:'Ext.data.Model',
    fields: ['id', 'title'],
});

演示在这里

于 2012-09-15T09:39:54.337 回答