Javascript 复合模型(模型中的模型),还是模型之间的手动外键关联?

Javascript 复合模型(模型中的模型),还是模型之间的手动外键关联?,javascript,sencha-touch,extjs,Javascript,Sencha Touch,Extjs,我有两个模型,我想在另一个模型中“嵌套”一个。有没有办法用Sencha Touch做到这一点?我的模型是这样的: Ext.regModel('OuterModel', { fields: ['name'] }); var outerStore = new Ext.data.Store({ model: 'OuterModel', data: [ {name: 'item1'}, {name: 'item2'} ] }); Ex

我有两个模型,我想在另一个模型中“嵌套”一个。有没有办法用Sencha Touch做到这一点?我的模型是这样的:

Ext.regModel('OuterModel', {
    fields: ['name']
});

var outerStore = new Ext.data.Store({
    model: 'OuterModel',
    data: [
        {name: 'item1'},
        {name: 'item2'}
    ]
});


Ext.regModel('InnerModel', {
    fields: ['a', 'b']
});
var innerStore = new Ext.data.Store({
    model: 'InnerModel',
    data: [
        {a: 1, b: 5},
        {a: 2, b: 5},
        {a: 3, b: 3}
    ]
});
  Ext.regModel('Post', {
    fields: ['id', 'user_id'],

    belongsTo: 'User',
    hasMany  : {model: 'Comment', name: 'comments'}
 });

Ext.regModel('Comment', {
    fields: ['id', 'user_id', 'post_id'],

    belongsTo: 'Post'
 });

Ext.regModel('User', {
    fields: ['id'],

    hasMany: [
        'Post',
        {model: 'Comment', name: 'comments'}
    ]
 });
Ext.regModel('User', {
    fields: ['id'],

    associations: [
        {type: 'hasMany', model: 'Post',    name: 'posts'},
        {type: 'hasMany', model: 'Comment', name: 'comments'}
    ]
});
每个
外部模型
都需要一个相关的
内部模型
,我希望能够有一个作为内部模型的字段,我可以从中创建
Ext.List
s。我可以将
outerName
添加到
InnerModel
并查询
outerName
,但是手动管理关联会让人感觉很马虎


手动解决方案是我唯一的选择,还是我可以使一个模型成为另一个模型的字段?

模型可以通过belongsTo与其他模型关联,并且有许多关联。例如,假设我们正在编写一个博客管理应用程序,它处理用户、帖子和评论。我们可以这样表示这些模型之间的关系:

Ext.regModel('OuterModel', {
    fields: ['name']
});

var outerStore = new Ext.data.Store({
    model: 'OuterModel',
    data: [
        {name: 'item1'},
        {name: 'item2'}
    ]
});


Ext.regModel('InnerModel', {
    fields: ['a', 'b']
});
var innerStore = new Ext.data.Store({
    model: 'InnerModel',
    data: [
        {a: 1, b: 5},
        {a: 2, b: 5},
        {a: 3, b: 3}
    ]
});
  Ext.regModel('Post', {
    fields: ['id', 'user_id'],

    belongsTo: 'User',
    hasMany  : {model: 'Comment', name: 'comments'}
 });

Ext.regModel('Comment', {
    fields: ['id', 'user_id', 'post_id'],

    belongsTo: 'Post'
 });

Ext.regModel('User', {
    fields: ['id'],

    hasMany: [
        'Post',
        {model: 'Comment', name: 'comments'}
    ]
 });
Ext.regModel('User', {
    fields: ['id'],

    associations: [
        {type: 'hasMany', model: 'Post',    name: 'posts'},
        {type: 'hasMany', model: 'Comment', name: 'comments'}
    ]
});
有关关联的使用和配置的详细信息,请参阅文档和。请注意,也可以这样指定关联:

Ext.regModel('OuterModel', {
    fields: ['name']
});

var outerStore = new Ext.data.Store({
    model: 'OuterModel',
    data: [
        {name: 'item1'},
        {name: 'item2'}
    ]
});


Ext.regModel('InnerModel', {
    fields: ['a', 'b']
});
var innerStore = new Ext.data.Store({
    model: 'InnerModel',
    data: [
        {a: 1, b: 5},
        {a: 2, b: 5},
        {a: 3, b: 3}
    ]
});
  Ext.regModel('Post', {
    fields: ['id', 'user_id'],

    belongsTo: 'User',
    hasMany  : {model: 'Comment', name: 'comments'}
 });

Ext.regModel('Comment', {
    fields: ['id', 'user_id', 'post_id'],

    belongsTo: 'Post'
 });

Ext.regModel('User', {
    fields: ['id'],

    hasMany: [
        'Post',
        {model: 'Comment', name: 'comments'}
    ]
 });
Ext.regModel('User', {
    fields: ['id'],

    associations: [
        {type: 'hasMany', model: 'Post',    name: 'posts'},
        {type: 'hasMany', model: 'Comment', name: 'comments'}
    ]
});