Select SAPU15 中的数据绑定

Select data binding in SAPU15

我阅读了文档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 的内容..

为什么它不从选择器中获取值,我如何读取选择器的新值?

在你应该绑定的项目的 key 属性 中 myTest>ProductId:这个值将填充你的模型 SelectedProduct 属性 每次 change 事件将被触发。