gpt4 book ai didi

javascript - Emberjs 使用 hasMany/belongsTo 创建记录

转载 作者:行者123 更新时间:2023-12-03 09:09:23 24 4
gpt4 key购买 nike

我正在尝试创建一条具有 hasMany/belongsTo 关联的记录。记录已创建但未保存...

故事模型:

export default DS.Model.extend({
title: DS.attr('string'),
description: DS.attr('string'),
tasks: DS.hasMany('task', { async: true })
});

任务模型:

export default DS.Model.extend({
title: DS.attr('string'),
story: DS.belongsTo('story', { async: true })
});

组件对象:

actions: {
createNewTask(){
var taskTitle = this.get('newTaskTitle');
var tasks = this.get('story.tasks');
var story = this.get('story');

this.set('newTaskTitle', '');

this.sendAction('action', taskTitle, tasks, story);
this.send('toggleModal');
}

在上面,story=model 和 this.get('story.tasks') 总是返回一个空数组。

路由对象:

export default Ember.Route.extend({
model: function(params){
return this.store.findRecord('story', params.id);
},
actions: {
createNewTask(newTaskTitle, tasks, story){
var newTask = this.store.createRecord('task', {
title: newTaskTitle
});

newTask.save().then(function(task){
//I think the issue is somewhere in here
tasks.addObject(task);
story.save();
});
}
}

基本上,创建的任务不会与其关联的故事一起保存......任何帮助都会很棒。谢谢!

编辑这是我本地存储中存储的 json

{  
"story":{
"records":{
"3jf2h":{
"id":"3jf2h",
"title":"Story1",
"description":"Story1",
"tasks":[
"6i03h"
]
}
}
},
"task":{
"records":{
"6i03h":{
"id":"6i03h",
"title":"T1",
"description":"T1",
"story":null
}
}
}
}

最佳答案

经过一番折腾后,我找到了一个解决方案,但我不确定这是否是最好的解决方案......

在我的故事 route :

actions: {
createNewTask(newTaskTitle, newTaskDesc, tasks, taskType, story){
var newTask = this.store.createRecord('task', {
title: newTaskTitle,
description: newTaskDesc,
status: 'Not Started',
type: taskType
});

newTask.save().then(function(task){
tasks.addObject(task);
story.save().then(function(){
task.set('story', story);
task.save();
});
});
}
}

我所做的是对已保存的故事设置 promise ,并将任务的故事设置为新保存的故事。

尽管这解决了我的问题,但这是否是正确的做事方式?

关于javascript - Emberjs 使用 hasMany/belongsTo 创建记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32125780/

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