【问题标题】:Parse error in CoffeeScript + Backbone save functionCoffeeScript + Backbone 保存功能中的解析错误
【发布时间】:2012-01-19 08:30:15
【问题描述】:

我正在尝试将 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

任何帮助表示赞赏...谢谢!

【问题讨论】:

    标签: backbone.js coffeescript


    【解决方案1】:

    就在这里,你把解析器弄糊涂了

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

    是这样吗?

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

    还是这个?

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

    两者都可以修复错误,但它们显然意味着不同的东西。

    我可以补充一点,隐式括号确实很棒,但只有在最简单的情况下才能利用这种很棒的优势。我通常使用的规则是在一行中的第一个函数调用中省略括号,并将它们用于所有其他函数。这条规则会让你完全摆脱这个问题。

    【讨论】:

    • 感谢@alex 的帮助。作为 CoffeeScript 的新手,我仍然不精通语法以及括号何时是必要的、隐含的或导致错误的。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 2012-02-15
    • 2016-03-23
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多