Управляющие операторы if-else в представлении XML SAP UI5

#xml #sapui5

#xml #sapui5

Вопрос:

У меня есть технические сомнения в UI5.

Как мы используем управляющие операторы в представлении XML? Например, как if-else. У меня есть условие, при котором, если оно удовлетворено, должны отображаться несколько разных строк кода. Я просмотрел и смог найти инструкцию препроцессора:

https://help.sap.com/viewer/40826922922346f890185c8ff02d30da/1.17/en-US/fc185952184c48618ef46306a1517f8c.html

Код:

 <template:if test="{meta>ImageUrl}">
  <template:then>
    <Image src="{path: 'meta>ImageUrl', formatter: 'sap.ui.model.odata.AnnotationHelper.format'}" />
  </template:then>
  <template:else>
    <Text text="{path: 'meta>Title/Value', formatter: 'sap.ui.model.odata.AnnotationHelper.format'}" />
  </template:else>
</template:if>
 

Однако пространство имен для «template» (xmlns:template=»http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1 «) больше не существует.

Кто-нибудь знает, как заставить это работать? Я не хочу использовать троичный оператор, это невозможно для сценария.

Ответ №1:

Вы могли бы использовать свойство visible. Тогда элементы управления будут отображаться, но не отображаются. Средство форматирования упрощает чтение условия, будь то неопределенное или нулевое.

XML:

 <Image visible="{ path: 'meta>ImageUrl', formatter: '.Formatter.visible' }" src="{path: 'meta>ImageUrl', formatter: 'sap.ui.model.odata.AnnotationHelper.format'}" />
<Text visible="{ path: 'meta>ImageUrl', formatter: '.Formatter.visible' }" text="{path: 'meta>Title/Value', formatter: 'sap.ui.model.odata.AnnotationHelper.format'}" />
 

Форматировщик:

 visible : function(value) {
  return !(typeof(value) === 'undefined' || value === null);
}
 

Комментарии:

1. Ценю ответ, но видимость сама по себе — это не то, что я ищу. Я обеспокоен тем, что простой оператор управления не поддерживается в SAP UI5 из коробки, что мы можем сделать так легко, например, в JSP!