1

viewModel.hasMany 関係を同期してバインドおよびフィルタリングされたストアを取得するにはどうすればよいですか?

extjs5 には 2 つのグリッド パネルがあります。最初のグリッドがグループで、2 番目のユーザーだとします。グループ グリッドを viewModel store.groups にバインドしました。このグループ ストアは機能しており、モデル プロキシを介して同期しています (モデルはビューモデルにバインドされています)。2 番目のグリッドは、 を介して同じ viewModel にバインドされbind:{groupsReference.selection.users}ます。バインディングが機能します。グループを選択すると、ユーザーがフィルタリングされます。一部のユーザー データを変更すると、ユーザー レコードがダーティとしてマークされます。

問題: Dirty Users が自動同期されなくなり、手動で同期する方法がわかりません。ここで autoSynced を機能させるにはどうすればよいですか? 手動同期をトリガーするにはどうすればよいですか?

ユーザーのグループのモデルは、hasMany/belongsTo 関係を除いて同じです。

Ext.define('MyApp.model.Groups', {
    extend: 'Ext.data.Model',

    fields: [
        { name: 'id', type: 'int' },
        { name: 'groupname', type: 'auto' }
    ],
    autoLoad: true,
    autoSync: true,
    proxy: {
        type: 'rest',
        url: '/api/groups',
        reader: {
            type: 'json',
            rootProperty: 'data',
            successProperty: 'success'
        },
        writer: {
            type: 'json'
        }
    },
    hasMany: {
        model: 'MyApp.model.Users',
        store:'MyApp.model.Users',
        name: 'users',
        foreignKey:'testId',
    }
});

そしてビューモデル

Ext.define('MyApp.view.main.MainModel', {
    extend: 'Ext.app.ViewModel',
    requires: ['MyApp.model.Groups','MyApp.model.Users'],
    alias: 'viewmodel.main',
    stores: {
        groups: {
            model: 'mfct.model.Experiment',
            autoLoad:true,
            autoSync:true
        },
        users: {
            model: 'mfct.model.Variation',
            autoLoad:true,
            autoSync:true
        }
    }

});
4

1 に答える 1