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

时间:2017-06-13 11:09:52

标签: xml fragment sapui5 subview


我搜索了这个问题的答案,但我找到的每个解决方案都没有用,所以我开始认为我的问题可能处于更高的水平(但官方和非官方的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>

我尝试了我能够想到的所有组合,但页面没有呈现。
现在我知道片段和xmlviews必须被聚合器包围,聚合器不能是sap.m的“content”标签。所以我尝试使用sap.ui.layout中的“VerticalLayout”和“content”,将它们移动到页面中,但浏览器仍抱怨使用正确的聚合器(来自ff控制台“无法添加文本节点作为直接子节点聚合。为了向聚合添加文本,需要一个周围的html标签:FRAGMENT CONTENT“)。
我已经读过必须将该视图声明为manifes.json,但是如果我理解正确的话,只有这些页面是“独立的”。我认为这不是我的情况,因为我会在我的应用程序中重用许多子视图或片段 在我不同的尝试中,我检查了是否有一些垃圾或一些错误的代码,但一切似乎都是正确的 我认为也许xmlviews和片段不能在sap.m.semantic.DetailPage中使用,但我没有通过SAP doumentation找到任何证据。
像我一样构建详细页面是正确的吗? IconTabFilter可以包含子视图或片段,还是以其他方式设计页面更好?每当我改变一些东西时,我都不知道它是否由于概念或设计错误而无效,我对此感到有些沮丧。

谢谢大家

1 个答案:

答案 0 :(得分:0)

错误是由<Text> FRAGMENT CONTENT </Text>引起的。您无法直接在<{1}}标记中输入 文本。您需要使用<Text>

其余的代码看起来很好。