SAP UI5。 JSON 视图中的聚合绑定。适用于 1.60 但不适用于 1.80

SAP UI5. Aggregation binding in JSON view. Works on 1.60 but doesn't in 1.80

我一直在努力解决这个问题,我想知道你们中是否有人知道这里发生了什么。

正在研究 JSON 视图,它基本上是一个 table 有 1 列的视图(正在进行概念验证)。此列必须显示日期,因此我使用 DatePicker 作为模板并绑定到我的模型。看起来像这样:

{
"Type": "sap.ui.core.mvc.JSONView",
"content": [
    {
        "Type": "sap.ui.table.Table",
        "id": "overviewTable",
        "selectionMode": "Single",
        "visibleRowCount": 3,
        "selectionBehavior": "RowOnly",
        "editable": false,
        "enableColumnReordering": false,
        "rows": {
            "path": "/items",
            "templateShareable": true
        },
        "columns": [
            {
                "Type": "sap.ui.table.Column",
                "id": "MYPROPERTYID",
                "hAlign": "Left",
                "width": "100%",
                "resizable": false,
                "sortProperty": "MYPROPERTYID",
                "filterProperty": "MYPROPERTYID",
                "filterType": {
                    "type": "sap.ui.model.type.Date",
                    "formatOptions": {
                        "pattern": "MM/dd/yyyy"
                    }
                },
                "label": {
                    "Type": "sap.m.Label",
                    "text": "My property ID",
                    "design": "Bold"
                },
                "template": {
                    "Type": "sap.m.DatePicker",
                    "editable": false,
                    "value": {
                        "path": "MYPROPERTYID",
                        "type": "sap.ui.model.type.Date"
                    }
                }
            }
        ]
    }
]}

运行 此应用在 1.60 上可以毫无问题地呈现 table。我的后端有一些虚拟数据(基本上是 1 行数据),它可以完美绑定并按应有的方式显示数据。 最重要的是,还有一组其他应用程序在顶部遵循相同的概述 table,在格式下方有详细信息,具有相同类型的绑定,我从来没有遇到过这个问题。 我还注意到这是 DatePicker 特有的。例如,如果我将我的模板更改为输入,我的聚合绑定将起作用。

[编辑] 我收到的错误如下: 加载数据失败:错误:“[object Object]”对于元素 sap.ui.table.Column

的聚合“模板”无效

处理这块时出现错误:

{
    "path": "MYPROPERTYID",
    "type": "sap.ui.model.type.Date"
}

我的猜测是在 1.60 和 1.71 之间发生了一些变化。这是我缩小范围并继续调查的范围,我只是希望有人知道发生了什么事,可以节省我几个小时。

[编辑] 我已经将它缩小到 1.63.1 和 1.64.1 之间的某个地方。 如果你想看到这个在行动: https://jsbin.com/medenuq/edit?html,console,output 只是玩版本看看会发生什么。

任何想法将不胜感激。谢谢!

我开了工单,你可以在这里追踪:https://github.com/SAP/openui5/issues/2972

codeworrior 很好地解释了回归的来源,以及在发布官方修复程序之前如何解决它。我将在这里粘贴他的解决方案,这样如果你想要的只是一个答案,你就不必去那里:

"template": {
    "Type": "sap.m.DatePicker",
    **"ui5object": true,       // <-- marker property**
    "editable": false,
    "displayFormat": "MM/dd/yyyy",
    "valueFormat": "yyyyMMdd",
    "value": {
        "path": "Date",
        "type": "sap.ui.model.type.String"
    }
}

非常感谢 codeworrior 的快速帮助,也感谢所有看过这篇文章并给予一些思考的人。