2013-01-10 45 views
1

這是一個簡單的用例,用於存儲具有繼承性的一對多(或甚至一對一)。 Ext JS如何用它的JSON閱讀器處理這個問題?獲取Ext JS協會,繼承和存儲工作

以下代碼提供幾個僞模型和數據來說明使用情況:

僞代碼示例:

Models: 

Car { 
    model, 
    year, 
    color 
} 

Truck extends Car { 
    bedLength, 
    duality 
} 

Van extends Car { 
    leftSlideDoor, 
    rightSlideDoor, 
    tailGate 
} 

CarOwner { 
    name, 
    cars <Car> 
} 

Data: 

carOwners: 

[ 
{ 
    name: "Sencha", 
    cars: [ 
    { 
    color: "Brown", 
    model: "Mater" 
    type: "truck", 
    duality: "false", 
    bedLength: "10" 
    }, 
    { 
    color: "red", 
    model: "sienna", 
    type: "van", 
    tailGate: "true", 
    leftSlideDoor: "true", 
    rightSlideDoor: "true" 
    } 
    ] 
} 
] 

當數據被加載時,一個「正確」型汽車的被實例化和加載。 這怎麼能在Ext JS中完成?

回答

0

從OO的角度來看,你所描述的不起作用。您的車主擁有一系列「汽車」,但您試圖在數據中使用的類型不是汽車,而是汽車。在c#中,您的carOwner可能包含List<ICar>,雖然這將使您能夠存儲卡車和貨車,但只能使用ICar界面的屬性(因爲這些屬性是唯一的共享屬性)。

我建議在那個例子,如果性能是可變的,你要麼設置你的車擁有這樣的:

CarOwner { 
    name, 
    cars <Car> 
    vans <Van> 
    trucks <Trucks> 
} 

或者你可以描述你的數據爲「汽車」,使該對象通用的,足以包括所有可能的屬性。作爲一個方面說明,如果你純粹是在Ext中的「關聯」的例子,並且汽車/貨車/卡車的東西是假設的,那麼回覆這個,我會放棄一個。