2015-02-10 46 views
0

我有兩個模型可以的對象。我有一個ctrl1的基類,具有ctrl2的繼承類。在我的Spark視圖中,我在div上有一個'each'來渲染列表中的控件(這些可以是ctrl1或ctrl2)。如果我在每個中引用基類屬性,它會按預期呈現。但是,如果我嘗試引用派生類型屬性,它會拋出一個錯誤,說ctrl1不包含我試圖訪問的屬性的定義。我試過像這樣:火花視圖中的Casting模型

{(ctrl2)control.PropertyOnDerivedOnly}" 

其中'control'是每個循環中的當前項目。有什麼方法可以將其轉換爲我期望使用Spark語法的對象?

值得一提的是,雖然它們可以是每種類型中的一種,但我在這個特定元素上做了一個'if',所以我知道他們在這一點上只會是ctrl2。因此演員應該是有效的。

回答

0

技術上,您可以設置一個臨時變量:

<var control2="control as ctrl2" /> 
<p>${control2.PropertyOnDerivedOnly}</p> 

不過,我建議你創建一個專門服務於這個視圖中的視圖模型,並從控制器填補視圖模型,做在這一點上鑄造。