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 的快速帮助,也感谢所有看过这篇文章并给予一些思考的人。
我一直在努力解决这个问题,我想知道你们中是否有人知道这里发生了什么。
正在研究 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 的快速帮助,也感谢所有看过这篇文章并给予一些思考的人。