我刚开始在ember / rails应用程序中使用moment.js。它在Chrome上运行良好,但我在Safari上遇到了一些问题,日期显示为:" undefined NaN / NaN / 0NaN"。我在控制台上仔细检查了一下,果然我得到了一个"无效的日期"错误信息。我认为问题来自于如何在Ember DS模型中格式化日期,因为json本身为两个浏览器返回有效的日期字符串。有没有人有解决方法呢?
HTML:
{{#each exam in model}}
<tr>
<td>
{{#link-to 'exam' exam}}{{date exam.examDate}}{{/link-to}}
</td>
</tr>
{{/each}}
Javascript:
Ember.Handlebars.registerBoundHelper "date", (date) ->
moment(date).format('ddd L, h:mm a')
App.Exam = DS.Model.extend(
examDate: DS.attr('date')
)
App.ApplicationStore = DS.Store.extend(
revision: 12
adapter: App.ApplicationAdapter
)
App.ApplicationAdapter = DS.ActiveModelAdapter.extend(
namespace: 'api/v1'
)
JSON:
{
"exam_date":"2012-12-12 00:00:00"
}
修改 如果其他人遇到此问题,我通过将DS.attr(&#34; date&#34;)更改为DS.attr(&#34; string&#34;)来解决问题。
答案 0 :(得分:1)
我将不得不猜测一下,因为我不想获得Ember Data的alpha版本,但我敢打赌它与您的服务器的响应方式有关。
如果你要做this.store.find('exam')
,那就会期待像这样的结果
{
exams:[
{
"exam_date":"2014-06-12T14:40:25-07:00",
"id":2
},
{
"exam_date":"2014-06-12T14:40:25-07:00",
"id":3
},
....
]
}
我绝对建议将您的Ember Data版本升级到至少1.0 beta +。您可以在此处详细了解更改:https://github.com/emberjs/data/blob/master/TRANSITION.md
我汇总了您的应用示例:http://emberjs.jsbin.com/OxIDiVU/680/edit