我正在使用:
ember-cli
0.2.7
ember-data
1.0.0-beta.18
ember
1.12.0
我不确定为什么,但我似乎无法检索newsletter
模型的标签。
我正在使用ActiveModelAdapter
:
import DS from 'ember-data';
export default DS.ActiveModelAdapter.extend({
namespace: 'api/v1',
host: 'http://localhost:3000'
});
newsletter.js
import DS from 'ember-data';
export default DS.Model.extend({
title: DS.attr('string'),
tags: DS.hasMany('tag')
});
tag.js
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string')
});
API响应(使用ActiveModelSerializer的rails后端):
{
"newsletters": [
{
"id": 1,
"title": "Panel Weekly",
"tag_ids": [
1
]
},
{...}
],
"tags": [
{
"id": 1,
"name": "arts"
},
{...}
}
我不知道如何检索简报的标签列表。我使用ember检查器和控制台($ E包含第一个时事通讯)尝试了这个:
>$E.get('tags.length')
0
>$E.get('tags')
Class {canonicalState: Array[0], store: Class, relationship: ember$data$lib$system$relationships$state$has$many$$ManyRelationship, record: Class, currentState: Array[0]…}
>$E.get('title')
"Panel Weekly"
答案 0 :(得分:1)
答案 1 :(得分:0)
好的,事实证明我使用自定义序列化程序来处理我的简报模型,这是不必要的。只需删除文件即可解决问题><。
import DS from 'ember-data';
// http://stackoverflow.com/a/21075106/1447468
export default DS.RESTSerializer.extend({
serializeIntoHash: function(data, type, record, options) {
var properties = this.serialize(record, options);
for(var prop in properties){
if(properties.hasOwnProperty(prop)){
data[prop] = properties[prop];
}
}
}
});