gpt4 book ai didi

javascript - EmberJS : Creating record which has belongsTo

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:44:44 25 4
gpt4 key购买 nike

让我用帖子和评论来描述我的问题。在我的 post_controller 中,我希望为当前帖子的评论创建一条新记录。执行此操作的 Ember 方法是什么?

关系是这样设置的:

App.Post = DS.Model.extend({
comments: hasMany('comment'),
});

App.Comment = DS.Model.extend({
post: belongsTo('post')
});

在我的 post_controller 中,我想创建一条记录。我在一个从模板触发的 Action 中有这个:

App.PostController = Ember.ObjectController.extend({
...
actions: {
createComment: function() {
var post = this.get('model'); // Edit: Forgot that I had this declared outside createRecord
var comment = this.store.createRecord('comment', {
content : "content",
post : post // This is where the problem is
});
}
}
});

但是,我收到一条错误消息:Uncaught TypeError: Cannot read property 'post' of undefined

我如何声明这种关系?谢谢。

编辑:ember-data 错误来自 ember-data.js 中的这个内部函数:

return Ember.computed(function(key, value) {
var data = get(this, 'data'),
store = get(this, 'store'), belongsTo, typeClass;

if (typeof type === 'string') {
typeClass = store.modelFor(type);
} else {
typeClass = type;
}

if (arguments.length === 2) {
Ember.assert("You can only add a '" + type + "' record to this relationship", !value || value instanceof typeClass);
return value === undefined ? null : value;
}

belongsTo = data[key]; // ERROR OCCURS HERE!

if (isNone(belongsTo)) { return null; }

store.fetchRecord(belongsTo);

return belongsTo;
}).property('data').meta(meta);
};

编辑:问题已解决!

问题是我给了评论一个名为数据的属性。该属性与内部 Ember 冲突。删除它使我上面的代码工作正常。

最佳答案

如果您在 createRecord 之外声明您的帖子(即在 var comment = 行上方)

var postModel = this.get('模型');

您可能在 createRecord 范围内使用“this”关键字时遇到问题

更新

另外,对于 this.get('model') 和 this.get('content')(从该范围外),您是否得到相同的结果?

关于javascript - EmberJS : Creating record which has belongsTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21093529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com