SAPUI5 如何在语义详细视图中插入片段或 xmlview

SAPUI5 How to insert fragment or xmlview inside a semantic detail view


我搜索了这个问题的答案,但我找到的每个解决方案都没有用,所以我开始认为我的问题可能在更高级别(但官方和非官方的 SAP 指南没有帮助)。

我有一个 Fiori Master-Detail 应用程序,我的详细视图如下:

    <mvc:View
        controllerName="masterdetailsample.controller.Detail"
        xmlns="sap.m"
        xmlns:l="sap.ui.layout"
        xmlns:core="sap.ui.core"
        xmlns:mvc="sap.ui.core.mvc"
        xmlns:semantic="sap.m.semantic">

    <semantic:DetailPage
        id="page"
        navButtonPress="onNavBack"
        showNavButton="{device>/system/phone}"
        title="{i18n>detailTitle}"
        busy="{detailView>/busy}"
        busyIndicatorDelay="{detailView>/delay}">

        <semantic:content>
            <ObjectHeader
                id="objectHeader"
                title="{EmployeeID}">
            </ObjectHeader>
            <l:VerticalLayout>
                <IconTabBar
                    id="iconTabBar"
                    class="sapUiResponsiveContentPadding"
                    upperCase="true">
                    <items>
                        <IconTabFilter
                            id="detailIconTabBarInfo"
                            text="{i18n>detailIconTabBarInfo}"
                            tooltip="{i18n>detailIconTabBarInfo}">

                            <Toolbar design="Solid">
                                <content>
                                    <Title 
                                        text="{i18n>detailIconTabBarInfo}"
                                        width = "100%">
                                    </Title>
                                </content>  
                            </Toolbar>

                            <core:Fragment id="perfEval" fragmentName="masterdetailsample.view.viewcomponents.PerformanceDevelopment" type="XML"/>
                            <mvc:XMLView id="compOvw" viewName="masterdetailsample.view.viewcomponents.PerformanceDevelopment" displayBlock="true"/>

                        </IconTabFilter>
                    </items>    
                </IconTabBar>
            </l:VerticalLayout>
        </semantic:content>
    </semantic:DetailPage>
</mvc:View>

我的片段页面如下:

<core:FragmentDefinition
    xmlns="sap.m" 
    xmlns:core="sap.ui.core" 
    xmlns:l="sap.ui.layout" 
    xmlns:f="sap.ui.layout.form" 
    xmlns:mvc="sap.ui.core.mvc">
    <Text>
        FRAGMENT CONTENT
    </Text>
</core:FragmentDefinition>

而 xmlview 是:

<mvc:View
    xmlns="sap.m" 
    xmlns:core="sap.ui.core" 
    xmlns:l="sap.ui.layout" 
    xmlns:f="sap.ui.layout.form" 
    xmlns:mvc="sap.ui.core.mvc"
    controllerName="masterdetailsample.controller.PerformanceDevelopment">
    <Text>
        FRAGMENT CONTENT
    </Text>
</mvc:View>

我尝试了所有我能想到的组合,但页面无法呈现。
现在我知道fragments和xmlviews必须被聚合器包围,不能是sap.m的"content"标签。所以我尝试使用 "VerticalLayout" 和 "content" 来自 sap.ui.layout,将它们移动到页面中,但浏览器仍然抱怨使用了正确的聚合器(来自 ff 控制台 "Cannot add text nodes as direct child of an aggregation. For adding text to an aggregation, a surrounding html tag is needed: FRAGMENT CONTENT") .
我读过必须将视图声明为 manifes.json,但如果我理解正确,只有当此页面为 "standalone" 时。我认为这不是我的情况,因为我会在我的应用程序中重用许多这个子视图或片段。
我检查了我在不同的尝试中是否有一些垃圾或一些错误的代码,但一切似乎都是正确的。
我想也许 xmlviews 和片段不能在 sap.m.semantic.DetailPage 中使用,但我还没有通过 SAP doumentation 找到任何证据。
像我所做的那样构建详细信息页面是正确的吗? IconTabFilter 是否可以包含子视图或片段,或者最好以另一种方式设计页面?每次我更改一些东西时,我都不知道它是否因为概念或设计错误而不起作用,对此我感到有点沮丧。

谢谢大家

错误是由<Text> FRAGMENT CONTENT </Text>引起的。您不能将文本 直接 输入到 <Text> 标签中。您需要使用 <Text text="FRAGMENT CONTENT"/>.

其余代码似乎没问题。