如何将变换器和/或绑定表达式应用于表中的数据?

时间:2017-08-19 02:22:51

标签: google-app-maker

我在表格中显示数据集。如何修改其中一个数据单元的绑定以使用transformer或甚至binding expression?在属性编辑器中,我只能从列表中选择单个单元格的绑定,而不能在文本框中编辑它们。

具体来说,我需要在特定时区中仅显示DateTime的时间部分,并且可能(不确定)也会使DateTimes看起来不同,如果它们不是今天但是,比如说,明天。

1 个答案:

答案 0 :(得分:2)

格式化日期以仅显示时间:

@datasource.item.DateTime#formatDate('HH:mm:ss') // format: 13:30:30

对于时区问题,您不能只使用用户拥有的时区,这应该是App Maker的默认值吗?使用此格式在日期字段中查看时区:

@datasource.item.DateTime#formatDate('HH:mm:ss, zzzz') // format: 13:30:30, UTC+3

(此处有更多格式选项:http://www.gwtproject.org/javadoc/latest/com/google/gwt/i18n/client/DateTimeFormat.html

对于不同日期的不同样式,我会使用日期字段样式的绑定表达式:

getDateStyles(@widget)

其中getDateStyles类似于:

function getDateStyles(widget) {
  var dateValue = widget.datasource.item.DateTime;

  var today = new Date();
  // setting the date to 00:00:00.00, don't know if there's a better way.
  today.setHours(0);
  today.setMinutes(0);
  today.setSeconds(0);
  today.setMilliseconds(0);

  var tomorrow = today.addDays(1);

  if (dateValue < tomorrow) {
    return ["MyStyleForPreviousDays"];
  }
  else {
    return ["MyStyleForFutureDays"];
  }

}

我已经创建了addDays方法:

Date.prototype.addDays = function(days) {
  var date = new Date(this.valueOf());
  date.setDate(date.getDate() + days);
  return date;
};

希望这能回答你的一些问题,我可能并不理解所有问题。