2016-06-06 2 views
0

Привет Я работаю над живыми предложениями при вводе имени sap.m.Input введенное значение будет использоваться для извлечения данных из mysql db с помощью сервлета Java. Результаты возвращаются в виде xml.Как реализовать предложения по sap.m.Input с помощью xml-модели?

Ниже приведен код sap.m.Input в представлении,

var suggestItem = new sap.ui.core.Item(this.createId("item"),{ 
     text:"text()"  
     }) 
var inputUser = new sap.m.Input(this.createId("idUser"),{ 
      placeholder: "{i18n>userid}", 
      type:"Number", 
      showSuggestion:true, 
      suggest:[oController.showSuggestion, oController] 
     }).addStyleClass("inputPadding").bindAggregation("suggestionItems","/plants/plant_name",suggestItem) 

Это функция в контроллере, который вызывается во время предложить событие

showSuggestion:function(oEvent){ 

    mthis = this 
    if(!this.getView().byId("idUser").getModel("sample")) 
    { 
    var sModel = new sap.ui.model.xml.XMLModel(); 
    this.getView().byId("idUser").setModel(sModel,"sample") 
    } 

var xml = sampleXml(this.getView().byId("idUser").getValue()) 

    ws_sample(xml,function(msg){ 
    xmldoc = jQuery.parseXML(msg); 
    console.log(xmldoc) 
    mthis.getView().byId("idUser").getModel("sample").setData(xmldoc) 

}) 
} 

документ XML с сервера будет выглядеть так:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<sample> 
    <plants> 
     <closed>0</closed> 
     <district_id>0</district_id> 
     <plant_id>7777</plant_id> 
     <plant_name>xyz</plant_name> 
    </plants> 
    <plants> 
     <closed>0</closed> 
     <district_id>0</district_id> 
     <plant_id>7778</plant_id> 
     <plant_name>abc</plant_name> 
    </plants> 
    <plants> 
     <closed>0</closed> 
     <district_id>0</district_id> 
     <plant_id>7779</plant_id> 
     <plant_name>ghi</plant_name> 
    </plants> 
</sample> 

Я пытаюсь заполнить элементы предложения, используя plant_n AME.

FYI Я устанавливаю XML-документ в модель sap.m.Inputs, а не в строку xml.

ошибок при запуске этого кода, однако, никаких предложений не возникает, когда я печатаю.

Любая помощь будет очень признательна.

TIA.

ответ

0

Указание ошибок неверно.

text свойство для Item должно быть путь к собственности в модели, которая относительно разрешена к пути, указанному как «/ plants» в bindAggregation.

var suggestItem = new sap.ui.core.Item(this.createId("item"), { 
    text: "{plant_name}" 
}) 
var inputUser = new sap.m.Input(this.createId("idUser"), { 
    showSuggestion: true, 
    suggest: [oController.showSuggestion, oController] 
}).addStyleClass("inputPadding").bindAggregation("suggestionItems", "/plants", suggestItem); 

Here рабочая демонстрация.

+0

Спасибо за ответ, но я уже пробовал это. Этот синтаксис будет работать для модели JSON, но, как я уже упоминал в вопросе, я использую XML-модель. Что мне требуется, это точный синтаксис при использовании модели XML, я прошел через [documentation] (https: // help.sap.com/saphelp_nw74/helpdata/en/b8/a2c24356c443228f7819d45697a2b8/content.htm), и я изменил его в соответствии с моим пониманием этого, но он все еще не работает. – Abhishek

Смежные вопросы