【问题标题】:View is not Rendering after using formatter function in UI5在 UI5 中使用格式化程序功能后视图未呈现
【发布时间】:2018-07-25 06:34:03
【问题描述】:

我正在使用字符串类型的日期格式化函数。我想在验证后以yyyy/mm/dd 格式显示它,比如如果值为"Unavailable" 它应该显示空白[View is rendering]。

如果不是,我应该以YYYY/MM/DD 格式显示它。所以我对时间值进行了切片,在调试器中它返回了我期望的值,但视图没有呈现。

其他格式化程序功能正在运行。使用 Slice 功能后出现问题。

查看

<Text text="{ path:'FORMULATIONDATE', formatter:'.getFormulation'}" wrapping="false" />

控制器

getFormulation: function(FORMULATIONDATE) {
  debugger;
  FORMULATIONDATE = FORMULATIONDATE.slice(0, 10);
  return (FORMULATIONDATE === "TimeUnavailable") ? null : FORMULATIONDATE;
}

【问题讨论】:

  • 您能提供一些代码吗?查看、格式化程序和您正在绑定的数据的示例(格式化之前)
  • 在视图中: 控制器:getFormulation: function(FORMULATIONDATE){ debugger; FORMULATIONDATE = FORMULATIONDATE.slice(0, 10);返回 FORMULATIONDATE === "TimeUnavailable" ?空:FORMULATIONDATE;} 日期:“09/05/2017 04:00:00”

标签: javascript sapui5 formatter


【解决方案1】:

考虑到FORMULATIONDATE 是来自服务的日期对象。

解决方案 1:使用模型类型

<Text text="{path: 'FORMULATIONDATE', type: 'sap.ui.model.type.DateTime', 
      formatOptions: {pattern:'yyyy/mm/dd', UTC: true}}" /> <!--update your format -->

解决方案 2:使用格式化程序

XML 视图

<Text text="{path: 'FORMULATIONDATE', formatter: 'formatter.formatDate'}" />

Formatter.js

jQuery.sap.require("sap.ui.core.format.DateFormat");
formatter = {
    formatDate: function(FORMULATIONDATE) {
        var dateFormat = sap.ui.core.format.DateFormat.getDateInstance({pattern : "dd.MM.YYYY"});//this is the default format
        if (FORMULATIONDATE == null) {  
            dateFormat = sap.ui.core.format.DateFormat.getDateInstance({pattern : "dd.MM.YYYY"});//update your format           
        } 
        var sFormatDate = dateFormat.format(FORMULATIONDATE);   
        return sFormatDate;
    }
}

注意:如果FORMULATIONDATE 不是日期对象,则使用new Date(FORMULATIONDATE)

【讨论】:

    猜你喜欢
    • 2020-08-10
    • 2020-03-06
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多