【问题标题】:formatting bound property in javascript before it is displayed在显示之前在 javascript 中格式化绑定属性
【发布时间】:2015-01-16 10:48:24
【问题描述】:

我正在尝试将 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 数据对象的正确语法是什么?

【问题讨论】:

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


【解决方案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 */;
        }
    }
})

【讨论】:

  • 您的想法似乎是我正在寻找的解决方案!但是当我尝试它时,格式化程序函数中的datenullundefined 意味着date.substr(6) 不起作用.. 对此有什么想法吗?
猜你喜欢
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
相关资源
最近更新 更多