0

次のように、2 つのモデルと読み込み成功のコールバック関数があります。

Ext.define('Desktop.model.User', {
    extend: 'Ext.data.Model',
    hasMany: ['Desktop.model.Module'],
    //......
});
Ext.define('Desktop.model.Module', {
    extend: 'Ext.data.Model',
    belongsTo: 'Desktop.model.User'
    //......
});

Desktop.model.User.load('', {
    success : function(user,options) {
        user.desktop.model.modules().each(function(module) {
            //**** ERROR HERE ****
            //.......
        }
    }
});

デバッグ ブレークポイントで、ストアによって自動生成されたユーザー オブジェクトに関数があることがわかりますが、desktop.model.modules()それを呼び出すための正しい構文がわかりません。上記のように直接呼び出すと、desktop.model が定義されていないというエラーが発生し、Module モデルの名前空間の一部ではなくプロパティとして扱われます。

名前空間で間違ったアプローチを取っていますか? または、その名前空間で関数を正しく呼び出すにはどうすればよいですか?

4

1 に答える 1

1

namehasMany でプロパティを指定します。

Ext.define('Desktop.model.User', {
    extend: 'Ext.data.Model',
    hasMany: {
        model: 'Desktop.model.Module',
        name: 'modules'
    }
});
// Later
user.modules().each();
于 2013-04-17T08:07:56.127 に答える