2
我想创建两个动态选择列表使用SAPUI5和XML作为开发范例的意见。UI5 oData和两个依赖选择
这里是比如我的OData模式:
- /EmployeeSet - 返回两个实体:
- PERNR = '00000001'
- PERNR = '00000002'
- /EmployeeSet('00000001') - 返回一个实体:
- PERNR = '00000001' 名称='雅各
- /EmployeeSet( '00000002') - 返回一个实体:
- PERNR = '00000002' 名称='马修
- /EmployeeSet( '00000001')/ KidsListSet - 返回两个实体:
- PernrKid = '00000010' 名称= '索菲亚'
- PernrKid ='00000011'Name ='James'。
- /EmployeeSet( '00000002')/ KidsListSet - 返回三个实体
- PernrKid = '00000020' 名称= '亚历山大'
- PernrKid = '00000021' 名称='佐伊
- PernrKid = '00000022' 名称= '奥利弗'
选择一工作正常,默认值在那里,并点击行动,我可以看到两个值。
两种选择:
<Select id="select1" width="100%" items="{ path: '/EmployeeSet' } change="handleSelect1">
<core:Item key="{Pernr}" text="{Name}" />
</Select>
<Select id="select2" width="100%" items="{ path: '/KidsListSet' }>
<core:Item key="{PernrKid}" text="{Name}" />
</Select>
代码handleAssigment功能:
handleAssigments : function(evt){
var context = evt.getParameter("selectedItem").getBindingContext();
var Path = context.getPath() + '/KidsListSet';
var select2 = this.getView().byId("select2");
return select2.bindAggregation("items", Path, new sap.ui.core.Item({ key : "{PernrKid}", text : "{Name}" }));
},
当我改变选择1值,选择2被更新,我看到两个或三个项目(基于第一选择)
但是我有几个问题:
如何预先填充select2的默认值(例如, PernrKid ='00000010'Name ='Sophia')
也许有可能在视图控制器中不创建新的选择项目的情况下进行数据绑定?
谢谢!
更新时间:2014年6月2日
如何设置OData的模型:
// create root view
var oView = sap.ui.view({
id: "app",
viewName: "view.App",
type: "JS",
viewData: { component : this }
});
// Load oData Model
var sServiceUrl = "/sap/opu/odata/sap/YKIDS/";
var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl, true, "", "");
oView.setModel(oModel);
...
五
碧玉喜,oBinding是未定义的,看起来像我的视图绑定在控制器初始化期间不可用。有任何想法吗? – earny
@earny尝试将模型向上移动,看看是否有帮助 –
oModel在Component.js中定义,但我无法getBinding onInit。 – earny