如果设置了Begda,我想显示" - ",否则只是""。当设置Begda时,输出显示" NaN",否则它会正确显示类型。所以三元运算符可以工作,但格式化器不起作用。 Begda字段包含实际日期对象:
this._oSelectedTrainingsModel.getData()[0].Begda
15:31:37.916 Date 2016-09-17T00:00:00.000Z
var oItemTemplate = new sap.m.StandardListItem({
title: "{Title}",
description: "{= ${Begda} ? ${Type} - ${ path: 'Begda', type: 'sap.ui.model.type.Date', formatOptions: { style: 'medium' }} : ${Type} }",
icon: "{icon}",
iconInset: false
});
我也尝试过同样的“NaN'输出:
var oItemTemplate = new sap.m.StandardListItem({
title: "{Title}",
description: "{= ${Begda} ? ${Type} - ${Begda}.toLocaleDateString() : ${Type} }",
icon: "{icon}",
iconInset: false
});
答案 0 :(得分:0)
问题是框架尝试对给定值应用减法。如果要在表达式中包含 - 字符,请执行字符串连接+ '-' +
。
还建议将复杂的计算放入括号中。 这是固定代码(括号是可选的):
var oItemTemplate = new sap.m.StandardListItem({
title: "{Title}",
description: "{= ${Begda} ? (${Type} + '-' + ${ path: 'Begda', type: 'sap.ui.model.type.Date', formatOptions: { style: 'medium' }}) : ${Type} }",
icon: "{icon}",
iconInset: false
});
请注意,表达式绑定应仅用于简单逻辑,而这个似乎更复杂,可以移动到格式化函数中。