我在将 JSON 模型绑定到sap.m.table
. 模型本身是通过一个数组生成的,该数组本身会在整个代码中填充,最后它由不同的对象组成。
这是对象数据的屏幕截图:
这种结构对我来说似乎有点奇怪,因为我总是必须单击(...)才能看到实际内容。
无论如何,我尝试将labelName和uploadName绑定到一个两列表。
<m:Table id="emptyColumnText" rows="{/emptyColModel}">
<m:headerToolbar>
<m:Toolbar height="2rem">
<m:Title text="{i18n>excel.emptyColMessage}" />
</m:Toolbar>
</m:headerToolbar>
<m:columns>
<m:Column>
<m:Text text="Excel Upload" />
</m:Column>
<m:Column>
<m:Text text="InfoObject" />
</m:Column>
</m:columns>
<items>
<ColumnListItem>
<cells>
<Text text="{/uploadName}" /> //different approaches to
<Text text="{>labelName}" /> // see what works
</cells>
</ColumnListItem>
</items>
</m:Table>
我已经尝试了不同的方法来将模型绑定到表格项,并将上传/标签名称绑定到单元格,但我还没有成功。另外我想在视图中完成所有绑定,而不是在控制器中!
这是我设置模型的方式:
var emptyColMessage = new sap.ui.model.json.JSONModel(emptyCol, 'emptyColModel');
dialog.setModel(emptyColMessage); // a new dialog opens which should contain the model, so I thought I'd set the model to the dialog
查看 UI5 检查器。我看到,该表具有与 /emptyColModel 的绑定,但没有列出任何项目或任何指向正确绑定的项目。
那么如何正确绑定我的数据呢?我尝试了几次添加路径的尝试。
编辑
我只是查看了模型信息并意识到 mmodel 数据看起来像这样:
所以我想,当它不是模型的实际属性而只是一个字符串时,访问uploadName会有点困难?
编辑 2
关于@TiiJ7 帮助的更新
if (emptyCol.length !== 0) {
var emptyColMessage = new sap.ui.model.json.JSONModel({ emptyColModel: emptyCol });
// var emptyColMessage = new sap.ui.model.json.JSONModel(emptyCol, 'emptyColModel');
}
if (randomMatch.length !== 0) {
var randomMatchMessage = new sap.ui.model.json.JSONModel({ randomColModel: randomMatch });
}
if (matchedColumn.length !== 0) {
var matchedColumnMessage = new sap.ui.model.json.JSONModel({ matchedColModel: matchedColumn });
}
dialog.setModel(emptyColMessage, 'emptyColModel');
dialog.setModel(randomMatchMessage, 'randomColModel');
dialog.setModel(matchedColumnMessage, 'matchedColModel');
我的第一个表的 xml 代码:
<m:Table id="emptyColumnText" items="{/emptyColModel}">
<m:headerToolbar>
<m:Toolbar height="2rem">
<m:Title text="{i18n>excel.emptyColMessage}" />
</m:Toolbar>
</m:headerToolbar>
<m:columns>
<m:Column>
<m:Text text="Excel Upload" />
</m:Column>
<m:Column>
<m:Text text="InfoObject" />
</m:Column>
</m:columns>
<m:items>
<m:ColumnListItem>
<m:cells>
<m:Text text="{/emptyColModel>labelName}" /> //I again tried different solutions
<m:Text text="{uploadName}" />
</m:cells>
</m:ColumnListItem>
</m:items>
</m:Table>