SAP UI5 确保控件 id 全局唯一的实现方法

举报
汪子熙 发表于 2022/08/04 19:23:39 2022/08/04
【摘要】 stable ID 用于在运行时识别和修改控制器内的控件。 但是,如果您重用或嵌套这些视图,这些 stable ID 将不再是唯一的。 为了避免 id 冲突,每个 SAP UI5 视图都将自己的 ID 作为前缀添加到其所有子控件中。看一个例子,下面这个 xml 视图里,Button 控件的 id 为:aButton<mvc:View viewName="sap.hcm.ButtonView"...

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");
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。