Ember.js Ember JSONSerializer条件嵌入

Ember.js Ember JSONSerializer条件嵌入,ember.js,ember-data,ember-cli,Ember.js,Ember Data,Ember Cli,是否可以在JSONSerializer中进行条件嵌入?在我的应用程序中,我有一些不希望在某些页面中包含的模型关系 例如: 视频详细信息页面 this.store.query('video',{filter:{include:'tags'}}),这里应该嵌入标记 搜索结果页面 this.store.query('video'),此处不应嵌入标记 定义: 从“余烬数据”导入DS; 导出默认的DS.JSONSerializer.extend(DS.EmbeddedRecordsMixin{ 属性:{

是否可以在
JSONSerializer
中进行条件嵌入?在我的应用程序中,我有一些不希望在某些页面中包含的模型关系

例如:

视频详细信息页面
this.store.query('video',{filter:{include:'tags'}})
,这里应该嵌入
标记

搜索结果页面
this.store.query('video')
,此处不应嵌入标记

定义:

从“余烬数据”导入DS;
导出默认的DS.JSONSerializer.extend(DS.EmbeddedRecordsMixin{
属性:{
标记:{embedded:'always'}
}
});

将始终将
标记
嵌入任何
视频
模型,因此调用
this.store.query('video')
将抛出错误,因为
标记
属性将不会出现在响应中。

您可以在序列化程序中动态编辑
属性,因此,如果检测到嵌入了标记,则可以设置
嵌入的
-

attrs:
    tags: {}

normalizeResponse: (store, primaryModelClass, payload, id, requestType) ->
    if <hash has tags embedded>
        @attrs.tags.embedded = 'always'
    @_super(store, primaryModelClass, payload, id, requestType)
attrs:
标记:{}
normalizeResponse:(存储、primaryModelClass、负载、id、请求类型)->
如果
@attrs.tags.embedded='始终'
@_超级(存储、primaryModelClass、有效负载、id、requestType)