我使用backgrid从后端Db显示JSON结果。其中一个字段是1970年以来以秒为单位的时间。1362578461000)当Backbone视图接收到这些数据时,backgrid将其发送到moment进行格式化。Moment抛出一个javaScript TypeError异常,该异常指示在Moment.js (v.2.0.0)的第758行
TypeError:字符串。indexOf不是函数
列格式如下:
var columns = [{
name: "startTime",
label: "Start Time",
editable: false,
cell: "moment"
}, {
name: "endTime",
label: "End Time",
editable: false,
cell: "moment"
}];
在Firebug中放置一个断点,看起来Moment认为该值是一个整数而不是字符串。
utc()moment.js(第960行)
input = 1362578461000
format = "YYYY-MM-DDTHH:mm:ssZ"
lang = undefined
对makeDateFromStringAndFormat的调用看起来像这样:
makeDateFromStringAndFormat()moment.js(758行)config = Object {_useuc =true, _isUTC=true, _i=1362578461000, more…}
关于我能做些什么来修复/解决这个问题,有什么想法吗?
谢谢
Backgrid的作者在这里。你的问题有两个部分:
- Backgrid.js在昨天发布的0.2.5中只获得了与moment.js 2.0.0的兼容性。
- moment单元格不接受整数作为模型的输入,因为它试图转换时区和区域设置,所以你的模型值必须是moment知道如何解析的日期时间字符串格式。