如何在 SAPUI5 中使用来自 JSONModel
的标志(条件)的 XML 视图中实现 if-else 条件?
到目前为止,我有一个 控制器:
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/model/json/JSONModel"
], function (Controller, JSONModel) {
"use strict";
return Controller.extend("sap.ui.demo.myApp.myController", {
onInit: function () {
//// set data model on view
var oData = {
title: "A cool title",
values: [{name: "Text 1", marketed: true}, {name: "Text 2", marketed: false}, {name: "Text 3", , marketed: true}]
};
var oModel = new JSONModel(oData);
this.getView().setModel(oModel);
}
});
});
和一个 视图:
<mvc:View
controllerName="sap.ui.demo.myApp.myController"
xmlns="sap.m">
<!-- using aggregation binding -->
<Panel expandable="true" expanded="true" headerText="{/title}" width="100%" content="{/values}">
<content>
<Label text="{name}"/>
<!-- if {marketed}
<Label text="product is marketed"/>
else
add nothing
-->
</content>
</Panel>
</mvc:View>
编辑:
有没有比实施感觉矫枉过正的 XML 预处理器更好的方法呢?
原文由 Benvorth 发布,翻译遵循 CC BY-SA 4.0 许可协议
OpenUI5 支持 Preprocessing Instructions 和 Expression Binding 。
使用 _预处理指令_,您可以执行以下操作:
我不确定第一行中的
test
是否测试null/not null
或true/false
。这就是 表达式绑定 可能派上用场的地方:它允许在大括号内使用复杂的表达式:编辑
以下解决方案可能更简单,但似乎有点老套。
将这两个元素嵌入到您的 XML 视图中,但使用复杂的表达式绑定切换可见性: