在显示之前在javascript中格式化绑定属性

时间:2015-01-16 10:48:24

标签: javascript json model-binding sapui5 date-formatting

我正在尝试将JSON日期格式化为JavaScript日期,以便以一种很好的方式显示它。原始日期来自JSON对象,如下所示:

{
    "name": "foo",
    "num": "1",
    "date": "\/Date(1367539200000)\/"
}

稍后应显示JSON元素的位置是SAPUI5对象标题:

objectHeader = new sap.m.ObjectHeader({
    title: "{/name}",
    number: "{/num}",
    attributes: [
        new sap.m.ObjectAttribute({
            text: "{/date}"
        })
    ]
 });

由于JSON对象通过

绑定到对象头
dataModel.setData(json)
objectHeader.setModel(dataModel)

值正确替换。但是我希望将日期格式正确地设置为更易读的格式,而不是在我的网站上看到/Date(1367539200000)/。我试过

new sap.m.ObjectAttribute({
    text: new Date(parseInt("{/date}".substr(6))).toLocaleString('de');
})

但是因为“无效日期”失败了。将JSON日期格式化为模型绑定中的Javascript数据对象的正确语法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用formatter为您执行此操作。优点是您可以正确使用数据绑定,因此您的控件将在模型更改时自动更新。

new sap.m.ObjectAttribute({
    text: {
        parts: [
            {path: "/date"}
        ],
        formatter: function(date){
            //do whatever you want
            return /* the value you want to have as result */;
        }
    }
})