2013-08-13 3 views
0

У меня большая проблема. В моей модели у меня есть следующие объекты: «инцидент», «проблема», «пользователь». Проблема связана с отношением к объекту инцидента и не является встроенным. Пользовательский объект является встроенным объектом ob the issue и также является отношением to принадлежит. В моем примере я хочу создать проблему и установить репортер (пользовательский объект) для публикации и отправки на сервер.Сделка создания объекта

я получаю следующее сообщение об ошибке:


Uncaught Ошибка: Попытка обработать событие loadedData на некоторое время в государственном rootState.loaded.updated.inFlight. Вызываются с неопределенным


После поста нового вопроса-объект должен быть установлен на инцидент инцидент должен обновить на сервере. Как я решаю проблему?

setupController: function(controller, model){ 
this._super(controller, model); 
    var transaction = this.get('store').transaction(); 
    var issue = transaction.createRecord(App.Issue, {}); 
    controller.set('model', issue); 
    var appController = this.controllerFor('application'); 
    controller.set('reporter',appController.get('user')); 
} 

saveIssue: function(){ 
    var issue = this.get('model'); 
    var rep = this.get('reporter'); 
    issue.set('reporter',rep); 
    var transaction = issue.get('transaction'); 
    if(transaction != null){ 
     transaction.commit(); 
    } 
} 

ответ

0

Одно различия я вижу в вашем коде, которые могут вызвать проблемы в том, что в setupController вы используете магазин defaultTransaction:

var transaction = this.get('store').transaction(); 

но в saveIssue вы используете собственную транзакцию issue модели, которые могут быть или недействительными:

var transaction = issue.get('transaction'); 

Поэтому я предлагаю использовать такой же сделка в обоих местах, например. в saveIssue:

var transaction = this.get('store').transaction(); 
if(transaction != null){ 
    transaction.add(issue); 
    transaction.commit(); 
} 
... 

Надеется, что это помогает.

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