backbone.js 使用super时,coffeescript中出现意外的else

mwngjboj  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(145)

我正在使用backbone.js,用coffeescript写它,但是得到这个错误,并且无法解决它!
代码片段:

module.exports = class CoreModel extends Backbone.Model

   destroyed: false

   # Helper to toggle the state of boolean value (using not)
   toggle: (key) -> @swap key, invert

   # Helper to change the value of an entry using a function.
   swap: (key, f) -> @set key, f @get key

   toJSON: -> if @destroyed then 'DESTROYED' else super

错误:

[stdin]:11:45: error: unexpected else
toJSON: -> if @destroyed then 'DESTROYED' else super
                                          ^^^^

不知道为什么这是一个意想不到的其他!

i1icjdpr

i1icjdpr1#

如果您使用的是coffeescript 2,那么您需要使用带有super()的括号。这里的错误消息应该会更有帮助。
你可以在文件上看到。

module.exports = class CoreModel extends Backbone.Model

  destroyed: false

  # Helper to toggle the state of boolean value (using not)
  toggle: (key) -> @swap key, invert

  # Helper to change the value of an entry using a function.
  swap: (key, f) -> @set key, f @get key

  toJSON: -> if @destroyed then 'DESTROYED' else super()

如果您发现需要使用旧行为(所有参数都转发到super调用),则可以使用以下代码:

foo: -> super arguments...

相关问题