Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 余烬罐';无法从多个关系中获取数据_Ember.js_Ember Data - Fatal编程技术网

Ember.js 余烬罐';无法从多个关系中获取数据

Ember.js 余烬罐';无法从多个关系中获取数据,ember.js,ember-data,Ember.js,Ember Data,我尝试使用余烬数据构建Rails+Ember应用程序 型号: 导出默认DS.Model.extend({ 名称:DS.attr('string'), 内容:DS.attr('string'), 前面的图像:DS.attr('string'), 创建时间:DS.attr('date'), 更新地址:DS.attr('date'), 状态:DS.attr('number'), 注释:DS.hasMany('comment',{async:true}), 用户:DS.belongsTo('user')

我尝试使用余烬数据构建Rails+Ember应用程序

型号:

导出默认DS.Model.extend({
名称:DS.attr('string'),
内容:DS.attr('string'),
前面的图像:DS.attr('string'),
创建时间:DS.attr('date'),
更新地址:DS.attr('date'),
状态:DS.attr('number'),
注释:DS.hasMany('comment',{async:true}),
用户:DS.belongsTo('user'),
});
然后像这样获取json(json是使用活动的\u model\u序列化程序生成的)

{“工作”:{
“id”:3,
“用户id”:1,
“内容”:“我的第一张照片”,
“image_before”:“image_before/original/AnViWyuup5I.png”,
“创建时间”:“2015-08-11T16:57:24.153Z”,
“更新时间”:“2015-11-13T11:39:44.076Z”,
“地位”:1,
“注释ID”:[13]
},
“评论”:[{
“id”:13,
“文本”:“好!”,
“创建时间”:“2015-09-28810:34:16.461Z”,
“用户id”:2
}]
}
模板为:


{{model.content}
注释({model.Comments.length}):
{{{#每个模型.注释为{注释}
{{comment.text}
{{/每个}}
在页面上,我得到了关于工作和评论的所有信息(0),但Chrome的余烬检查器显示了评论


如何打印注释?

您的模型定义应为:

comments: DS.hasMany('comment', {async: false}),
因为相关数据是与响应一起加载的,而不是异步获取的。 如果这是一个Ember 2.0应用程序,默认的异步设置为
true
。从余烬博客(,我的重点):

在Ember Data 2.0中,默认情况下,关系将是异步的。同步 仍将支持关系,但您需要手动 通过在关系上设置{async:false}来选择它们。余烬 数据1.13将记录一个弃用警告,如果您有任何 未显式设置async属性的关系。 此外,您还可以使用ember watson来帮助识别您的客户中的案例 没有显式异步的关系的代码库 财产


您的模型定义应为:

comments: DS.hasMany('comment', {async: false}),
因为相关数据是与响应一起加载的,而不是异步获取的。 如果这是一个Ember 2.0应用程序,默认的异步设置为
true
。从余烬博客(,我的重点):

在Ember Data 2.0中,默认情况下,关系将是异步的。同步 仍将支持关系,但您需要手动 通过在关系上设置{async:false}来选择它们。余烬 数据1.13将记录一个弃用警告,如果您有任何 未显式设置async属性的关系。 此外,您还可以使用ember watson来帮助识别您的客户中的案例 没有显式异步的关系的代码库 财产


问题解决了。默认情况下,DS.HASSOMY关联的ID不会添加到序列化的对象()

应该加上

导出默认DS.ActiveModelSerializer
.extend(DS.EmbeddedRecordsMixin)
.延伸({
属性:{
注释:{序列化:'ids',反序列化:'ids'}
}
});

问题已解决。默认情况下,DS.HASSOMY关联的ID不会添加到序列化的对象()

应该加上

导出默认DS.ActiveModelSerializer
.extend(DS.EmbeddedRecordsMixin)
.延伸({
属性:{
注释:{序列化:'ids',反序列化:'ids'}
}
});

啊,我误读了你的问题-我错过了活动模型部分(编辑:我没有足够的信誉对所选答案发表评论)啊,我误读了你的问题-我错过了活动模型部分(编辑:我没有足够的信誉对所选答案发表评论)