2016-04-06 42 views
-1

我嘗試將數據綁定到組合框,但沒有解決它。 我可以看到模型(modelData),數據在模型中。SAPUI5 Combobox JSONModel

有人可以告訴我,如果結果(EX_LABOR)內部的結構正確嗎?

  <ComboBox 
      items="{modelData}" 
      selectedItem="selectedItem" 
      selectedKey="keySelectedKey" 
      selectedItemId="idselectedItemId" 
      id="idComboboxLabor" 
      placeholder="Datum" 
      textAlign="Initial" 
      textDirection="Inherit" 
      maxWidth="100%" 
      change="onChangeLaborDatum" 
      selectionChange="onSelectionChangeLaborDatum"> 
       <items> 
        <core:Item key="{modelData>PatientID}" text="{modelData>/PatientID}"/> 
       </items> 
      </ComboBox> 

我把ajax請求放在init函數中。

控制器: jQuery.ajax({ URL:aUrl, 方法: 'GET', 數據類型: 'JSON', 的contentType: 「應用程序/ JSON」, 成功:功能(數據,textStatus,jqXHR ){

   // create JSON model instance 
       var oModelCombobox = new sap.ui.model.json.JSONModel(); 

       /* // set the data for the model 
        Result: 
        {"EX_LABOR":{"0":{"PatientID":3161,"Datum":"2014-12-08T23:00:00.000Z"},"1":{ */ 
       oModelCombobox.setData(data); 

       // set the model to the core 
       sap.ui.getCore().setModel(oModelCombobox, "modelData"); 
       var aData = oModelCombobox.getProperty("/EX_LABOR"); 

       var oModel1 = new sap.ui.model.json.JSONModel(); 
      //  oModel1.attachRequestCompleted(function() { 
        oModel1.setData({ 
         modelData: aData 
        }); 
        console.error(oModel1); 
        console.error(aData); 
      // }); 

      } 

Result

將是真正有用的,如果你一個能幫助我。

回答

1

您需要更正組合框項目聚集的結合:

items="{modelData>/EX_LABOR} 

而且EX_LABOR應該是一個數組。

另外,您需要更正項文本屬性(如@Qualiture提及)的結合:

text="{modelData>PatientID}" 

一般來說,你應該重新考慮你的命名:「modelData」是一個不好的名字,因爲它是不清楚你的模型包含數據,但是不清楚什麼樣的數據。此外,建議使用:

this.getView().setModel(model, name) 

而不是將其存儲在覈心中。

+0

試過了,不起作用。 \t \t \t \t \t \t <芯:項目鍵= 「{} PatientID」 文本= 「{/ PatientID}」/> \t \t \t \t \t user2405095

+0

試過,但不工作:\t \t \t \t項= 「{modelData>/modelData}」 \t \t \t \t將selectedItem = 「將selectedItem」 \t \t \t \t selectedKey = 「keySelectedKey」 \t \t \t \t selectedItemId = 「idselectedItemId」 \t \t \t \t ID = 「idComboboxLabor」 \t \t \t \t佔位符= 「原點」 \t \t \t \t textAlign設置= 「初始」 \t \t \t \t textDirection =「繼承」 \t \t \t \t maxWidth = 「100%」 \t \t \t \t變化= 「onChangeLaborDatum」 \t \t \t \t selectionChange = 「onSelectionChangeLaborDatum」> \t \t \t \t \t \t \t \t \t \t \t <芯:項目鍵=「{modelData > PatientID}「text =」{modelData>/PatientID}「/> \t \t \t \t \t \t \t \t \t – user2405095

+0

它應該是EX_LABOR,它也應該是一個數組。 – matbtt

0

好的,我明白了。問題是我用sap.ui.getCore().setModel(...)代替this.getView()。setModel(model,name)。 我只用它,因爲我有一個未捕獲的typeerror。但現在我使用this.getView(在我做ajax請求之前,我再也沒有得到typeerror,並且它工作正常)。

真的,謝謝你的幫助和快速響應!!!你給了我正確的提示!

+1

如果它有幫助,真的很讚賞將答案標記爲正確。 – matbtt

+0

@matbtt我會,但不知道哪裏 – user2405095