2014-03-12 81 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

這不完全是我想達到的,但這是一個有趣的建議。如果沒有更好的答案,我可能會接受這個答案。 –