SAPUI5 如何在语义详细视图中插入片段或 xmlview
Posted
技术标签:
【中文标题】SAPUI5 如何在语义详细视图中插入片段或 xmlview【英文标题】:SAPUI5 How to insert fragment or xmlview inside a semantic detail view 【发布时间】:2017-11-15 03:15:24 【问题描述】:我搜索了这个问题的答案,但我发现的每个解决方案都不起作用,所以我开始认为我的问题可能处于更高的级别(但官方和非官方的 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 的“内容”标签的聚合器包围。因此,我尝试使用 sap.ui.layout 中的“VerticalLayout”和“内容”,将它们移动到页面中,但浏览器仍然抱怨使用了正确的聚合器(来自 ff 控制台“无法将文本节点添加为聚合。要将文本添加到聚合中,需要一个环绕的 html 标记:FRAGMENT CONTENT")。 我已经读过该视图必须声明为manifes.json,但如果我理解正确,只有当这个页面是“独立的”时。我认为这不是我的情况,因为我会在我的应用程序中重用这些子视图或片段。 我检查了我在不同的尝试中是否留下了一些拒绝或一些错误的代码,但一切似乎都是正确的。 我认为也许 xmlviews 和 Fragments 不能在 sap.m.semantic.DetailPage 中使用,但我没有通过 SAP doumentation 找到任何证据。 像我所做的那样构建详细信息页面是否正确? IconTabFilter 是否可以包含子视图或片段,或者以另一种方式设计页面更好?每次我更改某些内容时,我都不知道是不是因为概念或设计错误而无法正常工作,对此我感到有些沮丧。
谢谢大家
【问题讨论】:
【参考方案1】:错误是由<Text> FRAGMENT CONTENT </Text>
引起的。您不能在<Text>
标记中直接 输入文本。你需要使用<Text text="FRAGMENT CONTENT"/>.
其余的代码看起来都很好。
【讨论】:
嗯,非常感谢您,先生!我的印象是标签内有一些禁止的标签,这对我来说没有多大意义。这绝对是更合乎逻辑的。谢谢 @MarcoDalena 很高兴为您提供帮助。如果这解决了您的问题,请随时接受答案,或者如果没有,请告诉我,我会尝试对其进行编辑。编辑:我注意到您以前从未接受过答案,所以我将把这个链接留在这里:meta.stackexchange.com/questions/5234/…以上是关于SAPUI5 如何在语义详细视图中插入片段或 xmlview的主要内容,如果未能解决你的问题,请参考以下文章
我们可以在活动 xml 中编写 UI 以及在片段 xm 中编写 UI 吗?