关于sap:SAP-UI5-确保控件-id-全局唯一的实现方法

6次阅读

共计 844 个字符,预计需要花费 3 分钟才能阅读完成。

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");
正文完
 0