在 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 的内容..

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

解决方法

在 Item 的 key 属性中,您应该绑定 myTest>ProductId:每次触发 SelectedProduct 事件时,此值都会填充您的模型 change 属性。>