Как проверить успешность события после выполнения save () для модели - PullRequest
0 голосов
/ 05 февраля 2012

Я использую следующий код для сохранения дополнительных свойств в модели (в данном случае ответьте на модель)

selectMedia: =>
  # Post media to server
  @options.answer.id = @options.answer.get('_id')
  @options.answer.url = "/v1/answers/#{@options.answer.get('_id')}"

  @options.answer.save
    youtube_id: @options.media.get('vid')
    success: (result) =>

      $('.modal').html('')
      $('.modal').modal('toggle')
      @options.question_view.remove()
      @options.question_view.render()
    error: ->
      console.log("error")

Я хочу выполнить набор команд только тогда, когда сохранение выполнено успешно. Я попробовал код выше, но он не работает (хотя я проверил, что данные действительно были сохранены)

Пожалуйста, сообщите, как я могу изменить код, чтобы проверить успешность события

1 Ответ

1 голос
/ 05 февраля 2012

Вы используете save неправильно.Backbone's save принимает отдельные атрибуты и параметры аргументов :

save model.save([attributes], [options])
[...]
save принимает вызовы об успешном завершении и об ошибке в хэше опций,

, но вы передаете только один хеш.Вам нужно назвать это так:

@options.answer.save { youtube_id: @options.media.get('vid') }
  success: (result) =>
    $('.modal').html('')
    $('.modal').modal('toggle')
    @options.question_view.remove()
    @options.question_view.render()
  error: ->
    console.log("error")

или, возможно, так, если вы действительно ненавидите фигурные скобки:

@options.answer.save 'youtube_id', @options.media.get('vid')
  success: (result) =>
    $('.modal').html('')
    $('.modal').modal('toggle')
    @options.question_view.remove()
    @options.question_view.render()
  error: ->
    console.log("error")
...