Ошибка разбора в CoffeeScript + функция сохранения Backbone - PullRequest
1 голос
/ 19 января 2012

Я пытаюсь использовать CoffeeScript с Backbone.js (через Brunch) и хочу реализовать функцию сохранения в моей модели, но она отказывается компилироваться, и я не могу понять, почему.Мне нужно и передать параметры в функцию сохранения, и реализовать обратные вызовы.

Приведенный ниже код дает ошибку Unexpected ':' во второй строке, но я не уверен, почему:

class exports.Tag extends Backbone.model

  defaults:
    id: null
    tagId: null
    found: false
    location: "Not yet found..."
    finders: []
    pointValue: 0
    unlockCode: ""

  verifyCode = ( code ) ->
    @save { tagId: @get 'tagId', unlockCode: code },
      success: ( model, response ) ->
        @trigger 'verifySuccessful', response
      error: ( model, response ) ->
        @trigger 'verifyFailed', response

Любая помощь приветствуется ... спасибо!

1 Ответ

2 голосов
/ 19 января 2012

Это здесь, вы путаете парсер

@save { tagId: @get 'tagId', unlockCode: code },

Это что?

@save { tagId: @get('tagId'), unlockCode: code },

Или это?

@save { tagId: @get('tagId', unlockCode: code) },

Либо исправит ошибку, но они, очевидно, означают разные вещи.

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

...