天天看點

Smart template的控件能否當成普通控件來用

我的同僚問過我這個問題:

Smart template的控件能否當成普通控件來用

隻要弄清楚Smart control的原理,就能回答這個問題。

概括起來,就是:

1. Smart field本身也是一個控件,更準确的說是一個沒有UI輸出的控件,隻是一個殼。在UI render的時候,smart field會演變成input field,還是drop down list,還是date picker,還是F4 help,這些都需要有一個角色來告訴smart field,這個角色就是Odata annotation。Metadata裡定義的annotation會決定smart field最後的輸出方式。

2. Smart control可以脫離Smart template架構單獨使用。也就是說您可以建立一個很簡單的xml view,然後在這個view裡像使用普通控件那樣使用smart control,沒有任何問題。

請參考這個例子(完整實作代碼在文末):

Smart template的控件能否當成普通控件來用

在XML view裡,我定義了一個Smart field,綁到Price這個property上。

Smart template的控件能否當成普通控件來用
Smart template的控件能否當成普通控件來用

該Fiori應用的目錄結構:

Smart template的控件能否當成普通控件來用

<a href="https://github.com/i042416/KnowlegeRepository/tree/master/ABAP/smartControlDemo/webapp">源代碼位址</a>

要擷取更多Jerry的原創技術文章,請關注公衆号"汪子熙"或者掃描下面二維碼:

Smart template的控件能否當成普通控件來用
Smart template的控件能否當成普通控件來用