获取Ext JS关联,继承和存储工作

时间:2013-01-10 22:39:43

标签: inheritance extjs model associations store

这是一个简单的用例,用于存储具有继承的一对多(甚至一对一)。 Ext JS如何使用它的JSON读取器来处理它?<​​/ p>

以下代码提供了一些伪模型和数据来说明用例:

伪代码示例:

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"
    }
  ]
}
]

加载数据时,&#34;正确&#34;汽车的类型被实例化和加载。 如何在Ext JS中完成?

1 个答案:

答案 0 :(得分:0)

从OO的角度来看,你所描述的并不起作用。您的车主拥有一系列“汽车”,但您尝试在数据中使用的类型不是汽车,而是扩展汽车。在c#中,您的carOwner可能包含List<ICar>,虽然这样可以存储卡车和货车,但您只能使用ICar界面的属性(因为这些是唯一的共享属性) )。

我建议在那个例子中,如果属性是可变的,你可以像这样设置你自己的车:

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

或者您可以将您的数据描述为“车辆”,并使该对象具有足够的通用性以包含所有可能的属性。

作为旁注,如果你纯粹是在Ext中的'协会'的例子后,汽车/货车/卡车的事情是假设的,回复这个,我会放弃一个。