2

バインドされた ExtJSgridanelがありviewmodel storeます。そのストアのモデルは、別のモデルを参照するフィールドを持つ定義済みモデルです。

簡単にするために、例を次に示します。

Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: ['name']
});

Ext.define('Order', {
    extend: 'Ext.data.Model',
    fields: ['date', {
        name: 'user',
        reference: 'User'
    }]
});

viewmodel: {
    store: {
        order: {
            model: 'Order',
        }
    }
}

gridpanelには2つの列があります。1 つの列で、dataIndex: 'date'正しく機能し、日付を表示します。ただし、2 番目の列では、ユーザーの名前を表示したいと考えています。どうすればいいのかわかりません。それuser field自体はオブジェクト上にあるため、宣言は機能しdataIndex: userません。私は試しdataIndex: {user.name}ましたが、それもうまくいきません。私も試してみました

bind: {
    data: '{user.name}'
}

また、役に立たない。列の構成を使用して解決策を見つけましたrendererが、それは本当に見苦しく、適切なフィールドのデータ構造を手動でトラバースする必要がある場合、モデルが別のモデルを参照するという点に勝っています。

TL;DR 列がモデルdataIndexのフィールドであることを宣言する方法を探しています。reference

4

0 に答える 0