javascript - Ember Data- 在 hasMany 关系中创建记录

标签 javascript ember.js ember-data

我正在使用 Ember Data beta2,并且我设置了 hasMany 关系。

创建子记录时,是否必须在父记录的相应属性上使用 pushObject?

在查看文档时,我觉得我需要正确设置记录的父属性并保存它。

我是这样做的:

    addPlugin: function() {
        //get the value
        var title = this.get('newPluginName');
        if (!title.trim()) { return; }

        var plugin = {
            name: title,
            category: this.get('model'),
            url: ''
        };
        var plugin = this.store.createRecord('plugin', plugin);
        plugin.save();

        //clear the text field
        this.set('newPluginName', '');
        $("#new-plugin").blur();
    }

我在 Chrome 的 Ember 检查器中看到新创建的记录,它不是脏的,但它不存在于父列表中,刷新后它就消失了。

最佳答案

对我有用的是:

var child = this.get('store').createRecord('child', {
   name: 'New Child',
   parent: parent
};
child.save();

parent.get('children').addObject(child);
// My backend automatically adds the inverse of relationships when saving     
// the child, so I don't need to save the parent separately

我不知道 addPlugin 属于什么,但是如果您从 ChildrenArrayController 创建子项,您可能需要包含

needs: ['parent']

在你的 Controller 中。在创建 child 并将其添加到 parent 之前,您需要调用:

var parent = this.get('controllers.parent');

关于javascript - Ember Data- 在 hasMany 关系中创建记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18917199/

相关文章:

javascript - 谷歌 firebase 云功能 + firestore

Javascript cookie 代码不起作用

javascript - Ember js 如何强制重新加载特定的选定记录?

javascript - 在 electronjs 中,在主进程中然后在渲染进程中使用 child_process.fork 有什么好处

ember.js - 如何跟踪 Glimmer 组件中的嵌套属性?

ember.js - 观察者如何找出 Ember.js 中被观察属性的前后值?

javascript - Ember JS : ArrayController with Dynamic Segments (Router) but not Store

javascript - Ember 异步计算属性返回未定义

javascript - EmberJS 嵌套路由未得到解析

javascript - 如何在nodejs中重置json文件