2015-08-20 4 views
0

Я пытаюсь создать запись, которая имеет hasMany/принадлежит к ассоциации. Запись будет создаваться, но это не спасает ...Emberjs создать запись с hasMany/принадлежит

История модели:

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(); 
      }); 
     } 
    } 

В принципе, созданная задача не сохраняется с ним ассоциируется история ... Любая помощь будет большой. Благодаря!

EDIT Это сохраненная в формате JSON от моего локального хранилища

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

Что вы подразумеваете под «созданной задачей не сохраняется с ее связанной историей»? У вас есть какие-то ошибки или что? –

+0

@ GennadyDogaev Я редактировал свой вопрос с сохранением json. Всякий раз, когда я создаю задачу, она добавляется в массив задач в истории, но для вновь созданной задачи история равна нулю. – Jshoe523

+0

Итак, вы используете локальное хранилище и смотрите там. Но, я думаю, что все в порядке, и когда ember будет загружать данные из хранилища, он будет обрабатывать отношения. –

ответ

1

После возиться с вещами, я пришел к решению, но я не уверен, если его лучшее решение ...

В моем сюжетном маршруте:

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(); 
       }); 
      }); 
     } 
    } 

То, что я сделал, был установлен обещание о сохраненной истории и поставил задачу-х рассказ о недавно сохраненной истории.

Даже если это решило мою проблему, это правильный способ сделать что-то?

Смежные вопросы