SAPUI5从字符串解析XML视图

问题描述:

是否可以解析XML字符串并将其用作SAPUI5-View?SAPUI5从字符串解析XML视图

我喜欢做这样的事情:

var sXML = '<core:View xmlns:html="http://www.w3.org/1999/xhtml" 
     xmlns:core="sap.ui.core" 
     xmlns:mvc="sap.ui.core.mvc" 
     xmlns:l="sap.ui.layout" 
     xmlns:f="sap.ui.layout.form" 
     xmlns="sap.m" 
    controllerName="controller.App" 
    displayBlock="true"> 
<App>...</App></core>'; 


var oView = sap.ui.view({id:"idstart1", view: sXML, type:sap.ui.core.mvc.ViewType.XML}); 

当然,通过与sap.ui.xmlview字符串定义属性viewContent,这是可行的,因为API reference状态:

viewContent [... ]可以将视图描述保存为XML字符串或已经解析的XML文档。

看看这个小例子,它创建了一个xmlView中出字符串文字:

sap.ui.xmlview(`myViewID`, { 
 
    async: true, 
 
    height: `100%`, 
 
    viewContent: `<mvc:View 
 
    xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc"> 
 
     <App> 
 
     <Page title="My String View"> 
 
      <Title text="Hello, world!"/> 
 
     </Page> 
 
     </App> 
 
    </mvc:View>`, 
 
}).loaded().then(createdView => createdView.placeAt(`content`));
<script id="sap-ui-bootstrap" 
 
    src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js" 
 
    data-sap-ui-theme="sap_belize"></script> 
 
<body class="sapUiBody" id="content"></body>


提到一个重要的事情是,我们应该始终使用async: true只要有可能。当发生同步XHR时,浏览器的整个UI线程被阻塞(直到请求完成),这导致了糟糕的用户体验。出于这个原因,正确的是,同步XHR won't be usable anymore

工作者之外的同步XMLHttpRequest正在从Web平台中移除。

通过loaded可以创建异步创建的视图,该视图创建视图的promise