gpt4 book ai didi

javascript - 如果值为空,则 sap.m.Text 的日期格式化程序不可见

转载 作者:行者123 更新时间:2023-11-28 03:33:10 25 4
gpt4 key购买 nike

我有一个 sap.m.Labelsap.m.Text。我从后端获得的值要么是 NULL,要么是像这样的日期对象 Tue Oct 01 2019 02:00:00 GMT+0200

我想使用格式化程序将 Tue Oct 01 2019 02:00:00 GMT+0200 转换为 Oct 01, 2019 并且如果后面的值- end 为 NULLsap.m.Labelsap.m.Text 均应不可见。

这是我的 XML:

<Label text="{i18n>ZZDATAB}" id="StartDateLbl" 
visible="{
path:'itemDetailData>/StartDate',
formatter:'ui.s2p.srm.sc.approve.util.Formatter.showElementOnUi'
}">
<layoutData>
<sap.ui.layout:ResponsiveFlowLayoutData minWidth="192" weight="3"></sap.ui.layout:ResponsiveFlowLayoutData>
</layoutData>
</Label>
<Text
text="{
path:'itemDetailData>/StartDate',
formatter:'ui.s2p.srm.sc.approve.util.Formatter.formatDateZ'
}"
visible="{
path:'itemDetailData>/StartDate',
formatter:'ui.s2p.srm.sc.approve.util.Formatter.showElementOnUi'
}"
id="StartDateTxt" maxLines="0">
<layoutData>
<sap.ui.layout:ResponsiveFlowLayoutData weight="5"></sap.ui.layout:ResponsiveFlowLayoutData>
</layoutData>
</Text>

我的格式化程序:

ui.s2p.srm.sc.approve.util.Formatter.formatDateZ = function (d) {
if (d === "" || d === null || typeof(d) === "undefined") {
return "";
} else if (typeof(d) === "object") {
var u = new Date(d);
var s = u.toString();

var result = s.substring(4, 10) + ", " + s.substring(11, 16);

return result;
}
return "";
};

ui.s2p.srm.sc.approve.util.Formatter.showElementOnUi = function(obj) {
if (obj === '') {
return false;
} else {
return true;
}
};

问题:如果我调试后端并使 itemDetailData>/StartDate 为空,输出仍然显示这些标签,即使它们应该是不可见的:

Start Date:
End Date:

最佳答案

您可以使用Expression Binding .

您可以使用 sap.ui.model.type.DateTime 格式化日期对象和风格中等(例如 2019 年 12 月 31 日)

<Label text="{i18n>ZZDATAB}" id="StartDateLbl" visible="{= ${itemDetailData>/StartDate} !== null}">
<layoutData>
<sap.ui.layout:ResponsiveFlowLayoutData minWidth="192" weight="3"></sap.ui.layout:ResponsiveFlowLayoutData>
</layoutData>
</Label>
<Text
text="{path : 'itemDetailData>/StartDate', type : 'sap.ui.model.type.DateTime', formatOptions:{ style: 'medium'}}" visible="{= ${itemDetailData>/StartDate} !== null}" id="StartDateTxt" maxLines="0">
<layoutData>
<sap.ui.layout:ResponsiveFlowLayoutData weight="5"></sap.ui.layout:ResponsiveFlowLayoutData>
</layoutData>
</Text>

关于javascript - 如果值为空,则 sap.m.Text 的日期格式化程序不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57977288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com