我建这个JSON例子(测试为有效)(..不介意,男人和女人的命名同样在这里:-)):SAPUI5复杂的数据绑定与DropdownBox在XML视图
{
"staff": {
"berlin": [{
"male": [
{"firstName": "Lasse", "lastName": "Larsson"},
{"firstName": "Gerrit", "lastName": "Gartner"}
],
"female": [
{"firstName": "Lasse", "lastName": "Larsson"},
{"firstName": "Gerrit", "lastName": "Gartner"}
]
}],
"paris": [{
"male": [
{"firstName": "Lasse", "lastName": "Larsson"},
{"firstName": "Gerrit", "lastName": "Gartner"}
],
"female": [
{"firstName": "Lasse", "lastName": "Larsson"},
{"firstName": "Gerrit", "lastName": "Gartner"}
]
}],
"oslo": [{
"male": [
{"firstName": "Lasse", "lastName": "Larsson"},
{"firstName": "Gerrit", "lastName": "Gartner"}
],
"female": [
{"firstName": "Lasse", "lastName": "Larsson"},
{"firstName": "Gerrit", "lastName": "Gartner"}
]
}]
}
}
在我的控制器我设置了JSON模式的全貌是这样的:
// init instance of JSON model
this.staffData = new sap.ui.model.json.JSONModel();
// load JSON file into model
this.staffData.loadData("ajax-dummy/staff.json");
// bind model to whole view
this.getView().setModel(this.staffData);
在我的XML视图现在,我想动态构建(嵌套)DropdownBox 这应该让我选择,例如, berlin-> male-> lastname 所以我需要3个级别的ListItems。
第一个问题是:我可以用JS生成这个(为工作人员对象中的每个 键创建一个Listitem),但我不知道如何在XML视图中处理这个问题。 它看起来像这样的时刻:
<content>
<DropdownBox id="dd-locations" editable="true">
<core:ListItem text="{/staff/berlin}"></core:ListItem>
</DropdownBox>
</content>
并显示(当然)刚刚“{对象..}”在书房DropdownBox,因为它是一个对象。
这甚至可以在数据绑定的XML视图内构建吗?或者有没有更好的方法来构建JSON的 ?我知道ListItems需要一个数组...最后:我如何嵌套ListItems?有没有更好的控制 然后DropdownBox我应该使用?
编辑: 我想要的是“只”嵌套Listitems像我可以在HTML中。我试过例如: -
<ComboBox>
<items>
<core:ListItem key="key2" text="text2"/>
<core:ListItem key="key3" text="text2">
<ComboBox>
<items>
<core:ListItem key="key4" text="text3"/>
<core:ListItem key="key5" text="text3"/>
<core:ListItem key="key6" text="text3"/>
</items>
</ComboBox>
</core:ListItem>
<core:ListItem key="key4" text="text2"/>
</items>
</ComboBox>
但母鸡发生错误,它说:
Uncaught Error: Cannot add direct child without default aggregation defined for control sap.ui.core.ListItem
我如何定义一个列表项的项目聚集?这会起作用吗?
非常感谢,豪
感谢你的建议 - 理论上这可能是一个选项,但我想探索使用dDropdownBox/ComboBox的可能性。 (我按问题编辑得更清楚我想要什么) – 2015-02-13 09:02:49
查看我更新的答案以获得可能的解决方案 – Qualiture 2015-02-13 10:04:29
非常感谢您为我提供的启发。这正是我从逻辑上看待的。大。最后,你的方法(更新依赖选择)比嵌套元素更“优雅”。 – 2015-02-13 10:29:10