如果-XML View UI5应用程序中的else条件

时间:2018-08-10 05:09:58

标签: data-binding sapui5

在我的XML视图中,如果来自模型部件的值是“ S”或“ P”,我想显示“是”,而其余所有值都希望显示“否”。

text="{= ${order>/parts} === 'S' ? "Yes" : ${order>/parts} === 'P' ? "Yes" : "No} }"/>

另外,如何写- if ${order>/parts}的字母为“ S” AND ${order>/stock}的字母为“ A”,然后显示“是”,否则以类似的方式显示否?

3 个答案:

答案 0 :(得分:2)

我尝试了这个小例子,它很好用。可能是因为在打开text属性和值(“是”和“否”)时都使用了双引号。尝试在值中将"替换为'。如果这样不起作用,则应检查{order>/parts}是否未定义。

查看

<Input value="{= ${test1} === 'S' ? 'Yes' : ${test1} === 'P' ? 'Yes' : 'No'}" />
<Input value="{= ${test1} === 'S' ? ${test2} === 'P' ? 'Yes' : 'No' : 'No' }" />

<Input value="{= ${test1} === 'S' || ${test1} === 'P' ? 'Yes' : 'No'}" />
<Input value="{= ${test1} === 'S'  &amp;&amp; ${test2} === 'P' ? 'Yes' : 'No'}"/>

控制器

    onInit: function() {
        var oModel = new sap.ui.model.json.JSONModel({
            test1: "S",
            test2: "P"
        });

        var bindingContext = new sap.ui.model.Context();
        bindingContext.oModel = oModel;
        bindingContext.sPath = "/";

        this.getView().setBindingContext(bindingContext);
        this.getView().setModel(oModel);
    }

答案 1 :(得分:2)

您应该阅读有关formatters的信息,这正是您所需要的

答案 2 :(得分:1)

希望这对您有帮助

<Input value="{= (${order>/parts} === 'S' || ${order>/parts} === 'P') ? 'Yes' : 'No' }" />
<Input value="{= (${order>/parts} === 'S' &amp;&amp; ${order>/stock} === 'A') ? 'Yes' : 'No' }" />