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

formatting bound property in javascript before it is displayed

我正在尝试将 JSON 日期格式化为 JavaScript 日期,以便更好地显示它。原始日期来自一个 JSON-object,它看起来像这样:

{
    "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');
})

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

您可以使用 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 */;
        }
    }
})