SAPUI5在控制器中动态创建ComboBox

时间:2018-10-24 03:16:08

标签: javascript ajax sapui5

当前,我在页面中正在开发SAPUI5应用程序。我必须基于微服务中的数据动态创建ComboBox。

我遵循以下网址中的示例代码。 查看来源:https://sapui5.hana.ondemand.com/test-resources/sap/m/ComboBox.html

但是,它使我的组合框中的内容消失了

以下是我的示例代码。

$.ajax({
                    url: "json/customers.json", 
                    dataType: 'json',
                    success: function(response){
                        var data= response; 
                        console.log(data);
                        var customerModel = new JSONModel(data);
                        console.log(customerModel);
                        oController.getView().setModel(customerModel, "customerJSON");
                        var ExtensionForm = oController.getView().byId("Extension_Form");

                                ExtensionForm.addContent(new sap.m.ComboBox(oController.getView().createId(“ExtensionLabelId”), {
                                    items: {
                                        path: "{ComboBoxModel>/}",
                                        template: new sap.ui.core.Item({
                                            key: "{ComboBoxModel>CUSTOMER_NAME}",
                                            text: "{ComboBoxModel>CUSTOMER_NAME}"
                                        })
                                    },
                                    value : "{model2>/"+ keys[i] + "/fieldvalue}",
                                    enabled: false
                                }));
                    },
                    error: function(error)
                    {
                        console.log("Error Message : " + JSON.stringify(error));
                    }
                });

1 个答案:

答案 0 :(得分:0)

我已经解决了。我只是删除了路径中的大括号{},现在对我来说效果很好。

以下是我的代码

$.ajax({
                    url: "json/customers.json", 
                    dataType: 'json',
                    success: function(response){
                        var data= response; 
                        console.log(data);
                        var customerModel = new JSONModel(data);
                        console.log(customerModel);
                        oController.getView().setModel(customerModel, "customerJSON");
                        var ExtensionForm = oController.getView().byId("Extension_Form");

                                ExtensionForm.addContent(new sap.m.ComboBox(oController.getView().createId(“ExtensionLabelId”), {
                                    items: {
                                        path: "ComboBoxModel>/",
                                        template: new sap.ui.core.Item({
                                            key: "{ComboBoxModel>CUSTOMER_NAME}",
                                            text: "{ComboBoxModel>CUSTOMER_NAME}"
                                        })
                                    },
                                    value : "{model2>/"+ keys[i] + "/fieldvalue}",
                                    enabled: false
                                }));
                    },
                    error: function(error)
                    {
                        console.log("Error Message : " + JSON.stringify(error));
                    }
                });