如何在JSON视图中完全绑定ComboBox

时间:2015-11-06 15:11:04

标签: view model sapui5

我试图在JSON视图中将完整的ComboBox与模板绑定。我将模型绑定到视图,将它与我在控制器中创建的模板绑定是没有问题的。但是我怎样才能在视图中实现这一目标呢?

我将自己定位于这个使用xml视图的示例:http://scn.sap.com/thread/3689278

我必须屏蔽并压缩代码,因此可能视图在此表单中无法正常工作 这是我的(精简)视图:

{
"Type": "sap.ui.core.mvc.JSONView",
"controllerName": "appname.controller.controllerName",
"height": "100%",
"width": "100%",
"content": [
    {
        "Type": "sap.m.Page",
        "title": "Suche",
        "content": [
            {
                "Type": "sap.ui.commons.ComboBox",
                "id": "myCbo",
                "maxPopupItems": 5,
                "items": {
                    "path": "{ModelName>ItemsForMyCbo}",
                    "template": {
                        "Type": "sap.ui.core.ListItem"
                        "text": "{Value}",
                        "key": "{Key}",
                        "enabled": true,
                        "icon": "",
                        "additionalText": "",
                    }
                }
            }
        ]
    }
]
}

这是我的模特:

screenModel : {

        ItemsForMyCbo : [
            {
                Key : "1",
                Value : "Val1"
            },
            {
                Key : "2",
                Value : "Val2"
            },
            {
                Key : "3",
                Value : "Val3"
            }
        ]
    }

控制器的一部分:

var oModel = new sap.ui.model.json.JSONModel()
    oModel.setData(this.screenModel);

    this.getView().setModel(oModel, "ModelName");

2 个答案:

答案 0 :(得分:3)

您的绑定需要进行以下调整。另请参阅development guide以了解绑定语法。

"items": {
    "path": "ModelName>/ItemsForMyCbo",
    "template": {
        "Type": "sap.ui.core.ListItem"
        "text": "{ModelName>Value}",
        "key": "{ModelName>Key}",
        "enabled": true,
        "icon": "",
        "additionalText": "",
    }

}

答案 1 :(得分:0)

最后我能够绑定完整的组合框

{
"items": {
    "path": "ModelName>/ItemsForMyCbo",
    "template": {
        "Type": "sap.ui.core.ListItem",
        "text": "{ModelName>Value}",
        "key": "{ModelName>Key}"
    }
},
"Type": "sap.ui.commons.ComboBox",
"width": "150px",
"id": "myCbo"
}

使用绑定(大括号)表示模板属性而不是组合框路径属性有点令人困惑