Sapui5 SAP UI5在片段之间动态切换

Sapui5 SAP UI5在片段之间动态切换,sapui5,Sapui5,如何使用click/press事件在两个片段之间动态切换 我有以下XML片段,它又嵌套了两个片段: <core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core"> <IconTabFilter id="containerFrag" text="{name}" key="{id}"> <dependents> <co

如何使用click/press事件在两个片段之间动态切换

我有以下XML片段,它又嵌套了两个片段:

<core:FragmentDefinition
    xmlns="sap.m"
    xmlns:core="sap.ui.core">
  <IconTabFilter
      id="containerFrag"
      text="{name}"
      key="{id}">
    <dependents>
      <core:Fragment
          fragmentName="com.example.fragments.fragment1"
          type="XML" />
      <core:Fragment
          fragmentName="com.example.fragments.fragment2"
          type="XML" />
    </dependents>
  </IconTabFilter>
</core:FragmentDefinition>

当我使用chrome进行调试时,fragToShow会根据showFrag1参数使用正确的frag进行更新,但是视图不会得到更新-container.addContent(fragToShow)似乎没有任何效果,除非我重新加载页面

不确定为什么这样做,但我必须从容器中向上移动一个,然后像这样插入新片段:

let container = oView.byId("containerFrag");
container.getParent().destroyContent();
container.getParent().addContent(fragToShow);
这个例子也有帮助:-尽管它们使用
removeAllContent
insertContent
,但两者似乎都很好


谢谢@D.Seah和@Ethan Jewett

您不能参数化
fragmentName
属性吗?(并将其绑定到json模型变量?)也许您想隐藏和显示片段。我同意@d.Seah-为什么不将这两个片段都放在您想要的内容聚合中,只需使用
setVisible
方法来控制显示哪一个片段(或者更好地绑定
visible
属性)?那么您就不会复制元素/控件,这可能会导致内存泄漏。不幸的是,片段没有任何类型的
可见的
属性。。。但这似乎是一个巨大的疏忽
let container = oView.byId("containerFrag");
container.getParent().destroyContent();
container.getParent().addContent(fragToShow);