Sencha ExtJs使用命名空间前缀调用函数?

时间:2013-04-17 07:45:48

标签: javascript extjs

我有两个模型和一个加载成功回调函数,如下所示:

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模型的命名空间的一部分。

我对命名空间采取了错误的方法吗?或者我该如何正确调用该命名空间的函数?

1 个答案:

答案 0 :(得分:1)

在hasMany上指定name属性:

Ext.define('Desktop.model.User', {
    extend: 'Ext.data.Model',
    hasMany: {
        model: 'Desktop.model.Module',
        name: 'modules'
    }
});
// Later
user.modules().each();