问题描述
我阅读了文档 https://sapui5.hana.ondemand.com/#/api/sap.m.Select 并尝试做一个小例子。我在控制器的 onInit 函数中创建了我的值:
var oData = {
"SelectedProduct": "test1","ProductCollection": [
{
"ProductId": "test1","Name": "test 1"
},{
"ProductId": "test2","Name": "test 2"
},{
"ProductId": "test3","Name": "test 3"
}
]
};
var oModel = new JSONModel(oData);
this.getView().setModel(oModel,"myTest");
我希望我的 selectedProduct 默认值为 test1,因此我将其初始化为 test1。
在我的 xml 文件中,我创建了我的选择器,如下所示:
<Select
id="idSelect"
forceSelection="false"
selectedKey="{myTest>/SelectedProduct}"
change="_change"
items="{
path: 'myTest>/ProductCollection'
}">
<core:Item key="{myTest>/SelectedProduct}" text="{myTest>Name}" />
</Select>
_change: function () {
console.log("_changeAblauf");
console.log(this.getView().byId("idAblaufbriefeSelect").getSelectedItem());
console.log(this.getView().byId("idAblaufbriefeSelect").getName());
},
我的问题是打印总是显示来自 oData 而不是来自选择器的 SelectedProduct 的内容..
为什么它不从选择器中获取值,我如何读取选择器的新值?
解决方法
在 Item 的 key
属性中,您应该绑定 myTest>ProductId
:每次触发 SelectedProduct
事件时,此值都会填充您的模型 change
属性。>