У меня проблема с привязкой моей модели 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>
Я уже пробовал разные подходы при привязке Model к элементам таблицы, а также привязке upload- / labelName к ячейкам, но я пока не добился успеха.Также я хотел бы выполнить все мои привязки в представлении , а не в контроллере !
Вот как я устанавливаю свою модель:
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
и вот как emptyCol выглядит с одной записью:
Просмотр инспектора UI5.Я вижу, что таблица имеет привязку к / emptyColModel, но нет ни одного элемента в списке или чего-либо, что указывает на правильную привязку.
Итак, как правильно связать мои данные?Я перепробовал несколько попыток добавить путь.
Редактировать
Я только что посмотрел информацию о модели и понял, что данные mmodel выглядят так:
Так что я думаю, что получить доступ к uploadName довольно сложно, если это не фактическое свойство модели, а только строка?
Edit 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>