0

我已经设置了一个测试,我尝试在获取项目后放置它。但是,它在 PUT 的日期失败。下面的日期字段使用 DS.attr('date')。

版本:

Ember      : 1.1.1
Ember Data : 1.0.0-beta.4+canary.c15b8f80
Handlebars : 1.0.0
jQuery     : 1.9.1

这是我的代码:

建筑物控制器

App.BuildingsController = Ember.Controller.extend({
  actions: {
    createBuilding: function() {
      var store = this.get('store');

      store.find('building', 1729).then(function(building) {
        building.set('title', 'Test 123');
        building.save();
      });
    }
  }
});

调用 store.find 时 API 返回的数据:

{
 "building":{
  "id":"1729",
  "name":"Test 123",
  "sort":"1",
  "published_at":"2013-09-26 11:00:27",
  "source":"source test",
  "content":"<p>content test<\/p>",
  "excerpt":"<p>excerpt test<\/p>",
  "lat":"62.39039989300704",
  "lon":"17.341790199279785",
  "address":"address",
  "build_start":"2013-09-22",
  "build_end":"2013-09-23",
  "created_at":"2013-09-26 11:00:28",
  "updated_at":"2013-09-26 11:00:28"
 }
}

数据 PUT 到 API:

{
 "address" : "address",
  "build_end" : "Mon, 23 Sep 2013 00:00:00 GMT",
  "build_start" : "Sun, 22 Sep 2013 00:00:00 GMT",
  "content" : "<p>content test</p>",
  "created_at" : "undefined, NaN undefined NaN NaN:NaN:NaN GMT",
  "excerpt" : "<p>excerpt test</p>",
  "lat" : 62.39039989300704,
  "lon" : 17.341790199279785,
  "name" : "Test 123",
  "published_at" : "undefined, NaN undefined NaN NaN:NaN:NaN GMT",
  "sort" : 1,
  "source" : "source test",
  "updated_at" : "undefined, NaN undefined NaN NaN:NaN:NaN GMT"
}
4

2 回答 2

0

DS.attr('date')您可以通过注册自定义转换并手动处理序列化/反序列化来使用自定义属性类型(而不是):

DS.RESTAdapter.registerTransform("mydate", {
  deserialize: function(serialized) {
    // deserialize date here
    return deserialized;
  },

  serialize: function(deserialized) {
    // serialize date here
    return serialized;
  }
});

ember-data 进行序列化时修改日期格式的最佳方法是什么的答案中所述?

于 2013-10-26T20:02:03.770 回答
0

我一直在与其他项目合作,现在我将 Ember 从 1.1.1 更新到 1.1.2,这似乎神奇地解决了这个问题。不过,我猜更新与我的问题没有任何关系。

感谢您抽出宝贵时间。

//斯特凡

于 2013-11-13T15:50:03.997 回答