SAP UI5 確保控制元件 id 全域性唯一的實現方法
阿新 • • 發佈:2021-10-13
stable ID 用於在執行時識別和修改控制器內的控制元件。 但是,如果您重用或巢狀這些檢視,這些 stable ID 將不再是唯一的。 為了避免 id 衝突,每個 SAP UI5 檢視都將自己的 ID 作為字首新增到其所有子控制元件中。
看一個例子,下面這個 xml 視圖裡,Button 控制元件的 id 為:aButton
<mvc:View viewName="sap.hcm.ButtonView" controllerName="sap.hcm.myController" xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc"> <Button id="aButton" text="Click me"/><mvc:View>
然後我定義了另一個 xml 檢視,把上面這個包含了 button 控制元件的 xml 檢視,巢狀進去:
<mvc:View viewName="sap.hcm.ContainerView" controllerName="sap.hcm.Address" xmlns="sap.ui.commons" xmlns:core="sap.ui.core" xmlns:html="http://www.w3.org/1999/xhtml"> <mvc:View id="ButtonView1" viewName="sap.hcm.ButtonView"/> <mvc:View id="ButtonView2" viewName="sap.hcm.ButtonView"/> <mvc:View>
執行時,兩個被巢狀的 xml 檢視 id 為:
-
myContainerView--ButtonView1
-
myContainerView--ButtonView2
獲取這些嵌入 xml 檢視例項的程式碼:
var oButtonView1 = oView.byId("ButtonView1");
獲取每個 xml 檢視例項裡的 button 例項的程式碼:
var oButton = oButtonView1.byId("aButton");