我试图将一个大的html视图分解成更小、更容易管理的块。
是否可以使用片段来完成这个任务?
例如,我有一个片段文件(view.configator.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>
然而,我在控制台得到以下错误。
请提供一个片段名称
有什么办法吗?
谢谢你
Gar.
EDIT : 好像是个bug,但你可以通过在自定义控件中封装片段来解决。
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>
在XML-View中,我有一个片段文件(view.configuration.Summary...)。
包括与此相关的观点。
<mvc:XMLView viewName="your.namespace.ViewName" async="true" />
鉴于 xmlns:mvc="sap.ui.core.mvc"
在HTML-View中
你可以包括这样的视图。
<div data-sap-ui-type="sap.ui.core.mvc.HTMLView" data-view-name="your.namespace.ViewName" data-async="true"></div>