我的列表项模板有什么问题?

时间:2016-08-02 13:28:46

标签: sapui5 sap-fiori

如果设置了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
        });

1 个答案:

答案 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
        });

请注意,表达式绑定应仅用于简单逻辑,而这个似乎更复杂,可以移动到格式化函数中。