我正在尝试将大型html视图分解为更小,更易于管理的块。
是否可以使用片段来执行此操作?
例如,我有一个片段文件(view.configurator.Summary.fragment.html),其中包含以下内容:
<div data-sap-ui-type="sap.m.Button" data-text="Hello"></div>
在我的父文件中,我尝试按如下方式包含片段:
<div data-sap-ui-type="sap.m.VBox" class="summary-panel-content">
<div data-sap-ui-type="sap.ui.core.Fragment"
data-fragment-name="view.configurator.Summary"
data-type="HTML"></div>
</div>
但是我在控制台中收到以下错误:
请提供片段名称
有什么想法吗?
谢谢,
碣。
编辑:看起来像是一个错误,但您可以通过将片段包装在自定义控件中来解决此问题
sap.ui.core.Control.extend("sap.mic.controls.Fragment", {
metadata: {
properties: {
"name": "string"
}
},
init: function () {
},
renderer: function (renderManager, control) {
var fragmentName = control.getProperty("name"),
fragment = sap.ui.htmlfragment(fragmentName);
renderManager.renderControl(fragment);
}
});
如此使用:
<div data-sap-ui-type="sap.m.Page" data-enable-scrolling="false">
<div data-sap-ui-type="sap.mic.controls.Fragment"
data-name="view.configurator.Summary"></div>
</div>
答案 0 :(得分:5)
您必须将此命名空间添加到XML-Header:
xmlns:mvc="sap.ui.core.mvc"
然后包含视图:
<mvc:XMLView viewName="your.namespace.ViewName"></mvc:XMLView>
HTML-View中的
您可以包含以下视图:
<div data-sap-ui-type="sap.ui.core.mvc.HTMLView" data-view-name="your.namespace.ViewName"></div>
XML视图中的XML片段
<core:Fragment id="xmlInXml" fragmentName="my.useful.SimpleUiPart" type="XML" />