ember.js - Ember-data 转换不适用于 ember-cli

标签 ember.js ember-data ember-cli

项目设置:

  • Ember:2.0.0
  • Ember 数据:2.0.0
  • Ember-cli:1.13.8

我创建了一个转换: 转换/isodate.js

import DS from 'ember-data';

export default DS.Transform.extend({

    deserialize: function(serialized) {
        serialized = window.moment(serialized).toDate();
        if(serialized.toString() === "Invalid Date"){serialized = null}
        return serialized;
    },

    serialize: function(deserialized) {
        deserialized = window.moment(deserialized).toISOString();
        return deserialized;
    }
});

并像这样使用它:

import Ember from 'ember';
import DS from 'ember-data';

export default DS.Model.extend({
    Forename: DS.attr('string'),
    Surname: DS.attr('string'),
    Gender: DS.attr('string'),
    DOB: DS.attr('isodate'),
});

但是没有应用转换。

我没有收到任何错误消息,也没有触发转换中的断点。我已经用一个名为 foo 的新转换对此进行了测试,我得到了完全相同的行为,转换没有被调用。

在 ember 2.0 中是否发生了某些更改,而这些更改尚未在文档上更新,导致上述内容无法正常工作?

最佳答案

转换仍然适用于 ember-cli 2.0+,这是我现在在我的应用程序中使用的一个,类似于我正在更改日期格式的你的:

转换 - app/transforms/utc.js:

import DS from "ember-data";
import moment from 'moment';

export default DS.Transform.extend({
    deserialize: function (value) {
        return moment.utc(value);
    }
});

还有我的模型 - app/models/day.js:

import DS from 'ember-data';
import Ember from 'ember';
import moment from 'moment';

export default DS.Model.extend({
    year: DS.attr('number'),
    date: DS.attr('utc'),
    createdAt: DS.attr('date'),
    dateSlug: Ember.computed('date', function() {
        return moment(this.get('date')).format('MM-DD');
    })
});

关于ember.js - Ember-data 转换不适用于 ember-cli,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32765180/

相关文章:

javascript - 使用嵌入式记录和 Ember 数据

javascript - Ember.js 和 ember-data 加载 json 时出错

unit-testing - Ember 测试 : Cannot read property 'createRecord' of null

testing - 在 ember 中访问浏览历史

javascript - Ember.js 中的 Google map

ember.js - 序列化日期属性

javascript - EmberJS 应用程序和西兰花

javascript - 是否可以在 emberjs 中按多个值进行过滤?

javascript - EmberJS - 在 promise 解决后调用 super 操作

ember.js - 使用 Ember Data 将 REST 请求发送到嵌套 API 端点 URL