Sapui5 如何读取磁贴容器SAP UI5中的所有磁贴

Sapui5 如何读取磁贴容器SAP UI5中的所有磁贴,sapui5,Sapui5,我想读取视图控制器中TileContainer中的每个磁贴。可能吗?在控制器中: <core:FragmentDefinition xmlns="sap.m"xmlns:f="sap.ui.layout.form" xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:l="sap.ui.layout"> <Page id

我想读取视图控制器中TileContainer中的每个磁贴。可能吗?

在控制器中:

<core:FragmentDefinition xmlns="sap.m"xmlns:f="sap.ui.layout.form" xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc"
    xmlns:html="http://www.w3.org/1999/xhtml" xmlns:l="sap.ui.layout">
 <Page id="tileInfo" showHeader="false" enableScrolling="true" > 
    <TileContainer    
      id="getTiles"

      tiles="{myModel1>TILECOLLECTION}">    
      <StandardTile 
        icon="{myModel1>icon}"  
        number="{myModel1>number}"  
        info="{myModel1>info}"
        infoState="{myModel1>infostate}" 
        title="{myModel1>title}" 
        numberUnit="{myModel1>numberunit}"
        press="handleTilePress"
        class="myGreen"    
        />   
        </TileContainer>   
       </Page> 
</core:FragmentDefinition>

数组中的aTiles是tile容器的tiles聚合的tile。

使用嵌套视图而不是片段。

然后,您可以获得瓷砖并应用下面的逻辑

...
var oTileContainer = this.byId("getTiles");
var aTiles = oTileContainer.getTiles();
...
var oTileContainer=this.byId(“myView--getTiles”);
var aTilesLength=oTileContainer.getTiles().length;

对于(var i=0;i我添加了一些更多的信息。如果我们不使用byId,我们可以使用下面的代码来获取片段详细信息:

谢谢大家。 注意:该代码在onInit函数中不起作用,但在其他函数中起作用

var oTileContainer = this.byId("myView--getTiles");
var aTilesLength = oTileContainer.getTiles().length;
for(var i = 0 ;i<aTilesLength;i++){
  if(i%2 == 1){
  oTileContainer.getTiles()[i].addStyleClass("blue");
  }else{
   oTileContainer.getTiles()[i].addStyleClass("green"); 
  }  
}

由于“getTiles”位于片段中,我无法访问它。出现错误。有什么想法吗?如何在视图中调用片段?我找到了获取瓷砖的方法,就像您提到的var fragmentId=this.getView().createId(“myFragment”);var tileContainer=sap.ui.core.fragment.byId(fragmentId,“getTiles”);var tile=tileContainer.getTiles();假设有10个tile,如何读取每个tile?for(var i=0;ivar fragmentId = this.getView().createId("myFragment"); var tileContainer = sap.ui.core.Fragment.byId(fragmentId,"getTiles"); var oTiles = tileContainer.getTiles();