Я создал пользовательскую плитку, но я испытываю некоторые трудности, которые я не понимаю. То, что я до сих порOpenUI5 CustomTile привязка не работает
на заказ плитка:
jQuery.sap.declare("myControls.myMenuTile");
jQuery.sap.require("sap.m.CustomTile");
sap.m.CustomTile.extend("myControls.myMenuTile", {
metadata: {
properties: {
"header": {
type: "string",
defaultValue: "myMenuTile"
},
"icon": {
type: "string",
defaultValue: "sap-icon://shipping-status"
},
// some more properties here...
},
},
// will be called during creation time
init: function() {
sap.m.CustomTile.prototype.init.call(this);
this.addStyleClass("myMenuTileClass");
// Header text
var txt = new sap.m.Text({
textAlign: "Center"
});
txt.addStyleClass("myMenuTile_Text");
txt.bindProperty("text", "header"); // --> POINT OF INTERREST <--
var textFlex = new sap.m.FlexBox({
fitContainer: true,
alignItems: "Center",
justifyContent: "Center",
items: [txt]
});
textFlex.addStyleClass("sapUiTinyMargin");
// some more code here...
var flexBox = new sap.m.FlexBox({
direction: "Column",
fitContainer: true,
height: "100%",
width: "100%",
class: "sapUiTinyMargin",
items: [textFlex]
});
this.setContent(flexBox);
}
Часть зрения:
<TileContainer id="tileContainer"
tiles="{path: '/Row'}"
style="width: 100%;"
>
<!--<StandardTile icon="{ICON}"
title="{TEXT}"
press="onTilePressed"
/>-->
<ctrl:myMenuTile header="{TEXT}"
icon="{ICON}"
press="onTilePressed"
class="sapUiTinyMargin"
/>
</TileContainer>
Связанные поля TEXT и ICON находятся в sap.ui.model.xml.XMLModel который загружается из базы данных. Они имеют верхний регистр, потому что Oracle делает верхний регистр колонок. Когда я использую StandardTile, TEXT и ICON отображаются правильно. Когда я использую пользовательскую плитку, текст и никакая иконка не отображаются.
Но я обнаружил, что, когда я изменить линию (см ТОЧКИ INTERREST)
txt.bindProperty("text", "header");
в
txt.bindProperty("text", "TEXT");
правильный текст отображается. Как я понимаю привязку данных Я хотел бы создать привязку в заголовке свойства, а не в поле базы данных, чтобы я мог привязать любой текстовый столбец модели к свойству заголовка.
Что мне не хватает? Заранее благодарны за Вашу помощь.
С наилучшими пожеланиями Йохы
Извините за мой поздний ответ - меня не было в городе. Я пытаюсь связать внутри элемента управления снова, потому что таким образом я могу использовать функцию рендеринга «внутренних» элементов управления. В противном случае мне пришлось бы реализовать пользовательскую функцию рендеринга –