看,我有一个使用sap.m.Table
的highlight
属性突出显示重复条目的表。现在我正在尝试实现一个切换按钮,让用户决定是否要突出显示重复的内容。
在我的控制器中,我创建了切换按钮函数,用于切换模型属性"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"
。