1. 程式人生 > 其它 >SAP UI5 確保控制元件 id 全域性唯一的實現方法

SAP UI5 確保控制元件 id 全域性唯一的實現方法

Support for Unique IDs

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");