日々精進

新しく学んだことを書き留めていきます

backbone.jsのcollectionオブジェクトにpushしたら_byIdがundefined

pushのタイミングで以下のエラーが出た。

TypeError: Cannot read property '#<Ohlc>' of undefined

色々調べたら、コンストラクタの最初でsuper呼べと書いてあったので呼ぶと直った。↓のような感じ。

exports.OhlcCollection = class OhlcCollection extends Backbone.Collection
  model:Ohlc
  constructor: (models, @options) ->
    super models, @options

constructorの代わりにinitializeを使えばsuper呼ばなくていいし、その方が主流っぽいのでそっちにした。
参考:javascript - Backbone.js collection fetch 'this._byId' undefined - Stack Overflow