backbone.js сохранить с помощью coffeescript - PullRequest
3 голосов
/ 01 июля 2011

У меня есть следующий метод в представлении магистрали, определенный в coffeescript:

  saveObservation: =>
    self = @
    observation = new Observation(ParentUid: _questionUid, Status: "N/a", Text: "Change to element")
    observation.save {
          success: ->
            alert('test')
          error: ->
            alert('failed')
        }

Наблюдение расширено от Backbone.Model

class Observation extends Backbone.Model
  url: ->
    "/AuditActionTracking/"  

Сохранение достигает сервера, но после завершения вызова ajax не вызывается ни успех, ни обработчики ошибок, которые я определил в сохранении.

Кто-нибудь может увидеть, что я делаю не так?

Ответы [ 2 ]

6 голосов
/ 01 июля 2011

Backbone.Model.save принимает 2 параметра , первый - это список свойств, которые вы изменяете, а второй - конфигурация обратного вызова.

Итак, если вы не изменяете какие-либо другие свойства во время сохранения, вы можете просто передать пустой объект:

observation.save {},
    success: (model, response) ->
      alert('test')
    error: (model, response) ->
      alert('failed')
4 голосов
/ 19 ноября 2011

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

observation.save null,
  success: (model, response) ->
    alert('test')
  error: (model, response) ->
    alert('failed')

Вышесказанное - это то, что сработало у меня, возможно, API изменилось с момента публикации этого предыдущего ответа?

...