如何在SAPUI5应用程序中使用"短" ID

2020-08-31 04:17发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我试图了解ID在SA...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我试图了解ID在SAPUI5应用程序上的工作方式,并感到有些困惑。

我知道SAPUI5将所有父ID串联在一起以创建唯一的ID,不会与其他视图上可能的ID产生冲突。

问题是,如果我使用此长的串联ID,然后将我的应用程序上载到Fiori,则所有ID都会更改,并且将无法正常工作。

在当前应用程序上,我试图获取树视图,然后将项目绑定到该视图。

这是我的主要视图代码:

这是我的树状视图代码:

在我的控制器上,我有以下代码:

第一行标记,我在其中查找带有ID" treeTemplate"的元素可以正常工作

第二行和第三行标记正常,但会导致ID更改的问题。

最后标记的那一行对我来说是完美的,但是不起作用。 而且我不明白为什么第一行有效,而当我完全相同时,使用视图上的ID却行不通。
我需要知道如何避免使用" application-ZProcesos-track-component "部分,因为其他部分不会改变。

请,如果有人能解释有关ID的逻辑,请多谢我,因为我只能找到关于SAPUI5为何执行此串联的文档,但无法避免它,或者为什么我需要某些元素, 完整ID和其他ID与"短" ID一起使用。

谢谢。

(23.6 kB)
付费偷看设置
发送
3条回答
派大星 ヾ
1楼-- · 2020-08-31 04:37

克里斯蒂安嗨

对不起,没有答案,但是由于我们有一个类似的问题,所以我将监视这个问题。 我们正在为应用程序编写测试脚本,并且创建的ID非常长,没有任何意义。 我理解挑战,但是必须有更好的方法来解决它。

Naas

SAP小菜
2楼-- · 2020-08-31 04:38

嗨,克里斯蒂安·奎瓦斯

< p>如果您通过控制器中的js代码手动创建控件,则它们将具有您在js代码中传递的ID。

但是通过xml,我认为它们始终具有由

那为什么this.byId()或this.getView()。byID(" Tree")对您不起作用?

我没有尝试过,但是我的假设是您在另一个视图中有树,这就是为什么它不起作用的原因。 因此,您需要获取该视图的实例,然后尝试this.getView()。byId(" beginView")。byId(" Tree"),该方法应该可以正常工作。

此问题可能会解决 如果您有2个不同的控制器用于嵌入在该灵活布局视图中的那2个不同视图,则不会出现。 但是,当您访问父视图控制器内部的子视图控件的ID时,可能会出现此问题。

(注意;这是基于我对您在视图和项目结构中所做的假设。

谢谢,

Mahesh

三十六小时_GS
3楼-- · 2020-08-31 04:22

如果您查看源代码,您不会感到惊讶。

当您调用byid时,它(createId)仅将id连接到视图中的当前层次结构级别,您从嵌入式视图中提供了一个id,它将无法工作。

 View.prototype.byId = function(sId){

 返回sap.ui.getCore()。byId(this.createId(sId));

 }

 View.prototype.createId = function(sId){

 如果(!this.isPrefixedId(sId)){

//视图用2个破折号作为分隔符,组件3和控件/元素1 sId = this.getId()+"-" + sId;

 }

 返回sId;

 }; 

一周热门 更多>