Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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
Javascript 余烬数据中的对象_Javascript_Ember.js_Ember Data - Fatal编程技术网

Javascript 余烬数据中的对象

Javascript 余烬数据中的对象,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,这已经被问了好几次了,但是这些例子并没有起到很大的作用 我想在我的服务器上发布“posts”,所以我有一个“posts”模型,然后是一个“single”模型。“posts”模型代表所有的posts,然后我的“single”模型代表每个post需要什么。。。我是新加入Ember.js的,在这里我真的需要帮忙/指导 因此,当我提交表单(用于创建新帖子)时: “职位”模式: import DS from 'ember-data'; export default DS.Model.extend({

这已经被问了好几次了,但是这些例子并没有起到很大的作用

我想在我的服务器上发布“posts”,所以我有一个“posts”模型,然后是一个“single”模型。“posts”模型代表所有的posts,然后我的“single”模型代表每个post需要什么。。。我是新加入Ember.js的,在这里我真的需要帮忙/指导

因此,当我提交表单(用于创建新帖子)时:

“职位”模式:

import DS from 'ember-data';

export default DS.Model.extend({
    posts: DS.hasMany('single'),
});
“单一”模式: 从“余烬数据”导入DS

export default DS.Model.extend({
  title: DS.attr('string'),
  content: DS.attr('string'),
});
然后我的序列化程序将两者连接在一起

import DS from 'ember-data';

export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs: {
    posts: { embedded: 'always' }
  }
});
目前,这是输出的错误:

断言失败:hasMany关系的所有元素都必须是DS.Model的实例,您传递了[[object]]

简而言之:我需要创建能够表示以下JSON结构的数据模型:

{

"posts": [

    { "title": "Title", "content": "Content" }

 ]

}

谢谢

这个错误实际上是在说到底出了什么问题

断言失败:hasMany关系的所有元素都必须是DS.Model的实例,您传递了[[object]]

模型
posts
与模型
single
多个关系。
您的代码所做的是传递一个普通的JS对象,而不是模型

const data = {
  "posts": [
    {                    // <-
      "title": title,    // <-
      "content": content // <- this is a POJO
    }                    // <-
  ]
};

我相信这是可行的,但是我的服务器抛出了一个400错误;这让我觉得内容的格式不正确。。{“errors”:[{“post”:[“必须是对象”]},{“post.title”:[“必须是字符串”]},{“post.content”:[“必须是字符串”]}]}“引导我思考”并没有给我任何有用的信息来帮助。您应该检查网络并实际查看发送的内容以及错误发生的确切位置(服务器和/或客户端上的代码)。一个想法是,发送时没有正确序列化内容。检查
posts.toJSON()返回的内容。
const data = {
  "posts": [
    {                    // <-
      "title": title,    // <-
      "content": content // <- this is a POJO
    }                    // <-
  ]
};
// create 'posts' and 'single' separately
const posts = this.store.createRecord('posts');
const single = this.store.createRecord('single', {
  title,
  content
});
// link them up
posts.get('posts').addObject(single);