【发布时间】:2015-08-20 18:32:51
【问题描述】:
我正在尝试创建具有 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
}
}
}
}
【问题讨论】:
-
“创建的任务没有与其关联的故事一起保存”是什么意思?你有什么错误还是什么?
-
@GennadyDogaev 我用存储的 json 编辑了我的问题。每当我创建一个任务时,它都会被添加到故事的任务数组中,但是对于新创建的任务,故事为空
-
所以您正在使用本地存储并查看那里。但是,我认为这里一切正常,当 ember 从存储中加载数据时,它会处理关系。
-
@GennadyDogaev 只是每次我尝试创建一个新任务时,它都会覆盖现有任务而不是添加到它......
-
试试
story.set('tasks', tasks).save()
标签: javascript ember.js ember-data local-storage