我试图在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");
答案 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"
}
使用绑定(大括号)表示模板属性而不是组合框路径属性有点令人困惑