2017-07-02 95 views
1

是否可以解析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}); 

回答

0

當然,通過與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