[英]Emberjs create record with hasMany/belongsTo
我正在嘗試創建具有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
}
}
}
}
在弄亂事情之后,我想到了一個解決方案,但是我不確定這是否是最好的解決方案...
在我的故事路線中:
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();
});
});
}
}
我所做的是對已保存的故事作出了承諾,並將任務的故事設置為新保存的故事。
即使這解決了我的問題,這是否是正確的處理方式?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.