如何在表达式绑定中使用三元操作符切换应用属性绑定?



看,我有一个使用sap.m.Tablehighlight属性突出显示重复条目的表。现在我正在尝试实现一个切换按钮,让用户决定是否要突出显示重复的内容。

在我的控制器中,我创建了切换按钮函数,用于切换模型属性"compare"客户端模型"compareModel"它被绑定到我的表。

我的默认模型是表项的模型。被束缚的人被欺骗了。属性包含"Success""Error"

如此:

<ColumnListItem highlight="{dupe}">
<Text text="{myItemText}" />
<!-- ... -->
</ColumnListItem>

现在是我的问题:

我想根据切换按钮是否按下设置highlight属性。到目前为止,我的表达式绑定尝试看起来像这样:

<ColumnListItem highlight="{= ${compareModel>/compare} ? ${dupe} : false }">

我试着把引号在这里和那里,但到目前为止没有运气。希望有人能帮助我!

试试highlight="{= ${compareModel>/compare} ? ${dupe} :undefined}

工作示例:

globalThis.onUI5Init = () => sap.ui.require([
"sap/ui/core/mvc/XMLView",
"sap/ui/model/json/JSONModel", // sample model. Applies also to ODataModel
], async function (XMLView, JSONModel) {
"use strict";
const control = await XMLView.create({
definition: `<mvc:View xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m"
displayBlock="true"
height="100%"
>
<App>
<Page title="Toggle Highlight">
<headerContent>
<Switch
state="{compareModel>/compare}"
customTextOn=" "
customTextOff=" "
/>
</headerContent>
<List items="{/items}">
<StandardListItem
title="{myItemText}"
highlight="{= %{compareModel>/compare} ? %{dupe} : undefined }"
/>
</List>
</Page>
</App>
</mvc:View>`,
models: {
"compareModel": new JSONModel({ "compare": true }),
undefined: new JSONModel({
"items": [
{
"myItemKey": 1,
"myItemText": "A",
"dupe": "Error"
},
{
"myItemKey": 2,
"myItemText": "B",
"dupe": "Success"
},
{
"myItemKey": 3,
"myItemText": "A",
"dupe": "Error"
}
]
}),
},
});
control.placeAt("content");
});
<script id="sap-ui-bootstrap"
src="https://sdk.openui5.org/nightly/resources/sap-ui-core.js"
data-sap-ui-libs="sap.ui.core,sap.m,sap.ui.layout,sap.ui.unified"
data-sap-ui-async="true"
data-sap-ui-oninit="onUI5Init"
data-sap-ui-compatversion="edge"
data-sap-ui-excludejquerycompat="true"
data-sap-ui-xx-waitfortheme="init"
></script>
<body id="content" class="sapUiBody sapUiSizeCompact"></body>

highlight="{= ... ? ... :false}"的问题是false不是列表项的highlight属性的enumsap.ui.core.MessageType.IndicationColor的有效值。您应该会看到一个控制台错误报告类似的问题。

对于undefined,highlight默认值对于sap.m.ListBase控件,将应用"None"

相关内容

  • 没有找到相关文章