我这里的列表项模板有什么问题?
What's wrong with my list item template here?
如果设置了 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
});
问题是框架试图对给定值应用减法。如果要在表达式中包含 - 字符,请执行字符串连接 + '-' +
。
还建议将复杂的计算放在括号中。
这是固定代码(括号是可选的):
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
});
请注意,表达式绑定应该只用于简单的逻辑,这个似乎更复杂,可以移到格式化程序函数中。
如果设置了 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
});
问题是框架试图对给定值应用减法。如果要在表达式中包含 - 字符,请执行字符串连接 + '-' +
。
还建议将复杂的计算放在括号中。 这是固定代码(括号是可选的):
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
});
请注意,表达式绑定应该只用于简单的逻辑,这个似乎更复杂,可以移到格式化程序函数中。