2014-03-12 82 views
0

如何定义Sencha Touch模型以便从另一个模型继承所有字段,添加一些自己的模型?Sencha Touch模型的继承

这足以继承模型中的所有领域:

Ext.define('MyApp.model.Foo', { 
    extend: 'MyApp.model.Bar' 
}); 

但我怎么可以添加新的领域?

+0

您是否尝试过在继承字段时会发生什么情况?如果这不起作用,您可以克隆这些字段 - 基类的数组并在子类中扩展列表。但是'instanceof'将不起作用。 – hgoebl

+0

没有尝试,但我没有看到任何理由为什么父亲的领域不应该被孩子忽略。你将如何/何时克隆和扩展?这正是我问的:) –

+0

请尝试它(将字段属性添加到子类),如果它不起作用,我们会找到解决方法(通过克隆字段)。 – hgoebl

回答

1

你可以试试这个:

Ext.define('MyApp.model.Person', { 
    extend: 'Ext.data.Model', 
    config: { 
     idProperty: 'Id', 
     fields: [{ 
      name: 'Id' 
     }, { 
      name: 'firstName' 
     }, { 
      name: 'lastName' 
     }], 
     hasMany: [{ 
      model: 'MyApp.model.Car' 
     }] 
    } 
}); 



Ext.define("MyApp.model.Car", { 
    extend: 'Ext.data.Model', 
    config: { 
     idProperty: 'Id', 
     fields: [{ 
      name: 'Id' 
     }, { 
      name: 'model' 
     }, { 
      name: 'make' 
     }, { 
      name: 'year' 
     }, { 
      name: 'personId' 
     }], 
     belongsTo: [{ 
      model: 'MyApp.model.Person', 
      associationKey: 'personId' 
     }] 
    } 
}); 

希望它会帮助你!

+0

这不完全是我想达到的,但这是一个有趣的建议。如果没有更好的答案,我可能会接受这个答案。 –