2013-09-30 3 views
1

На самом деле я разрабатываю приложение в каркасной марионеточной структуре. У меня есть простой запрос, который я много искал, но не смог понять, как заставить его работать. Проблема заключается в Model.destroy(). То, что я хочу, - это когда я звоню Model.destroy(), сначала запись должна быть получена от сервера, и если ответ положительный, то успех. Обратный вызов должен быть удален.Обновление просмотра в успешном обратном вызове Model.destroy()

Это мой код

model.destroy({ 
    success: function (model, response) { 

    }, 
    error: function (model, response) { 

    } 
}); 

Но что происходит сейчас погода он удаляется ЗАВИСИМОСТИ от сервера то есть какой-либо обратного вызова называется она будет удалена с экрана. Поэтому я хочу удалить модель te из представления, если она обращается к успешному обратному вызову.

Прошу совета.

ответ

3

В идеале вашей модели действительно не нужно ничего знать о своих взглядах. Вместо того, что вы должны делать, это привязка вашего представления к прослушиванию событий на вашей модели.

Если вам нужно подождать, пока ваш сервер отправит ответ, что модель была уничтожена, вы можете передать опцию {wait: true} при вызове метода destroy.

Например, в initialize методы вашего взгляда в вы можете связать его, чтобы слушать ваши модели destroy события,

initialize: function() { 
    this.listenTo(this.model, "destroy", this.destroy); 
} 
+0

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

+0

Я не думаю, что событие 'remove' срабатывает, если обратный вызов ошибки срабатывает, поэтому по умолчанию он должен удалять его только после того, как был запущен обратный вызов. Однако, если вы хотите, чтобы вы могли запустить другое событие на своей модели в своем обратном вызове и прослушать это событие в своем представлении вместо события 'destroy'. – Jack

+0

Большое спасибо. –

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