如何在 Ember.js 中保存具有“日期”类型属性的模型?

Posted

技术标签:

【中文标题】如何在 Ember.js 中保存具有“日期”类型属性的模型?【英文标题】:How do I save a model with attribute of type 'date' in Ember.js? 【发布时间】:2013-10-20 04:19:12 【问题描述】:

我正在尝试在 Ember.js 中保存一个包含日期属性的对象。

在 store 上调用 createRecord() 后,新对象在页面上表示,但 date 属性在调用 save() 时从页面中消失。模型上的所有其他属性类型都不会表现出这种先出现后消失的行为。下面是一些示例代码:

App = Ember.Application.create()

App.IndexRoute = Ember.Route.extend
    model: () -> @store.find "post"

App.Post = DS.Model.extend
    time: DS.attr "date"
    body: DS.attr "string"

App.IndexController = Ember.ArrayController.extend
    actions:
        createPost: () ->
            body = @get 'newBody'
            post = @store.createRecord 'post',
                body: body
                time: Date.now()
            @set 'newBody', ''
            post.save()

App.Post.FIXTURES = [
    id: 1
    time: new Date("2013-9-30")
    body: "fixture post"
]

请参阅this jsfiddle 进行演示。

【问题讨论】:

【参考方案1】:

您应该使用new Date(),而不是使用Date.now()

Date.now() 返回一个似乎给 Ember 带来问题的整数。 new Date() 返回一个 Ember 可以处理的实际 Date 对象。这是一个稍微修改过的 jsfiddle:http://jsfiddle.net/AJRts/

【讨论】:

以上是关于如何在 Ember.js 中保存具有“日期”类型属性的模型?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ember JS 中获取模型数据

检查 Ember.js:获取对象(类)的类型?

检查Ember.js:获取对象的类型(Class)?

Ember.js:如何加载音频文件

不要使用Ember.js从服务器获取新数据

Ember JS从日期选择器中选择日期时,更改按钮组件的颜色和标题