2015-03-13 1 views
0

, когда я называю мой XMLModel и попытаться oModel.getXML на консоли браузера появляется проблема:Ошибка при нагрузке Модель неперехваченным TypeError: Не удалось выполнить «serializeToString» на «» XMLSerializer: параметр 1 не типа «Узел»

"Uncaught TypeError: не удалось выполнить 'serializeToString' на 'XMLSerializer': параметр 1 не типа" Узел"

Но если я oModel.setXML непосредственно в коде, как:

oModel.setXML("<questionnaire><question><id>A01</id><text>Whats is you ID Number?</text><answer>1234</answer></question></questionnaire>"); 

то ошибка не произойдет

Вот моя функция управления OnInit:

var oModel = new sap.ui.model.xml.XMLModel(); 
    oModel.loadData("model/questionario.xml"); 
    var view = this.getView(); 
    view.setModel(oModel); 
    var oData = oModel.getXML(); 
    console.log(oData); 

    //This is what i expect to do with the return 

     var oData = oModel.getProperty("/pergunta/texto"); 
     var label_01 = view.byId("lbl_01"); 
     label_01.setText(oData); 



}, 

И это мой XML Модель

<questionnaire> 
    <question> 
     <id>A01</id> 
     <text>Whats is you ID Number?</text> 
     <answer>1234</answer> 
    </question> 
</questionnaire> 

Спасибо всем помогают

+0

Ваша модель отсутствует закрывающий '' тег – Qualiture

+0

Возможно Qualiture является правильным. Но на всякий случай, и поскольку мой ограниченный испанский язык не дает мне большого контекста: данные, возвращенные в XMLModel, могут иметь только один корневой узел. – cschuff

+0

К сожалению, его там, я просто забыть здесь, когда я вставить код в вопросе –

ответ

0

Вы, вероятно, страдаете от асинхронного характера данных загрузка; вы пытаетесь получить данные, пока данные еще не загружены.

Либо переключиться на синхронную нагрузку - определенно не рекомендуется! - или получить данные после того, как данные загружены с помощью обработчика событий attachRequestCompleted:

var oModel = new sap.ui.model.xml.XMLModel(); 
oModel.loadData("model/questionario.xml"); 

oModel.attachRequestCompleted(function(oEvent) { 
    var oData = oModel.getXML(); 
    console.log(oData); 
});