SAPUI5 Combobox JSONModel

时间:2016-04-06 13:43:39

标签: json combobox sapui5

我尝试将数据绑定到组合框,但是没有解决它。 我可以看到模型(modelData),数据在模型中。

有人可以告诉我,结果里面的结构(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({                 网址:aUrl,                 方法:'GET',                 dataType:'json',                 contentType:“application / json”,                             success:function(data,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

如果你们中的一个人可以帮助我,那将非常有帮助。

2 个答案:

答案 0 :(得分:1)

您需要更正ComboBox项聚合的绑定:

items="{modelData>/EX_LABOR}

EX_LABOR也应该是一个数组。

另外,您需要更正Item文本属性的绑定(如@Qualiture所述):

text="{modelData>PatientID}"

一般情况下,您应该重新考虑您的命名:“modelData”是一个坏名称,因为您的模型不清楚您的模型是否包含数据,但不清楚哪种数据类型。此外,建议使用:

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

而不是将其存储在核心中。

答案 1 :(得分:0)

好吧,我明白了。问题是我使用了sap.ui.getCore()。setModel(...而不是this.getView()。setModel(model,name)。 我只使用它,因为我得到了一个未被捕获的类型错误。但现在我使用this.getView(..在我执行ajax请求之前,我不再得到一个类型错误,它工作正常。

真的,谢谢你的帮助和快速反应!你给了我正确的提示!