单个模型的多个序列化程序

时间:2014-12-30 18:14:04

标签: ember.js ember-data

我的User模型有很多Reminders

首次创建User时,我希望嵌入reminders。更新后,我不希望它的提醒被嵌入。我怎么能这样做?

我的策略是创建一个new-user-serializer

的自定义DS.EmbeddedRecordsMixin
reminders: { embedded: 'always' }

并在我的UserAdapter createRecord方法中使用它,但我无法使其正常工作。

1 个答案:

答案 0 :(得分:0)

它并不理想,但你可以做到 -

`import DS from 'ember-data'`
`import ApplicationSerializer from './application'`

UserSerializer = ApplicationSerializer.extend DS.EmbeddedRecordsMixin,

    attrs:
        reminders: {}

    serialize: (snapshot, options) ->
        if snapshot.attr('embedRemindersFlag')
            @attrs.reminders.embedded = 'always'
        @_super(snapshot, options)

`export default UserSerializer`

embedRemindersFlag必须是模型的属性,因此快照会将其选中,但我已单独实施transient选项,以防止将属性发送到服务器。

embedRemindersFlag: DS.attr 'string', {defaultValue: false, transient: true}