项目设置:
- 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/