貧弱な英語力での切ない日本語訳なので、
間違っているところがあれば教えてください><
原文:http://backbonejs.org/#changelog
- Events に listenTo と stopListening が追加されました。これらは
on
やoff
に対して inversion-of-control 的に使うことができます。あるオブジェクトがlistenしているすべてのイベントをunbindするのに便利です。view.remove()
は自動的にview.stopListening()
をコールします。 - コレクションに対して
add
を使う際に{merge: true}
を渡すことで、重複したモデルを無視する代わりに、既存のモデルに属性値をマージすることができるようになりました。 - モデルの集合を”賢く”アップデートできる
update
(fetch
のオプションとしても利用できます)メソッドが追加されました。 -
save
をする際に{patch: true}
を渡すことでHTTP PATCHがサポートされます。 -
Backbone
オブジェクトがEvent
を継承しています。よってグローバルなイベントバスとしてそれを使うこともできます。 - RouterのURLでオプション部分を正規表現を使わなくても括弧で表現できるようになりました。
- EventsがNodeの
once
やjQueryのone
のようなonce
をサポートしました。 - EventsがjQueryスタイルの
obj.on({click: action})
のようなイベントマップをサポートしました。 - resetイベントを監視している際に、
options.previousModels
で前回のモデルのリストにアクセスできるようになり便利になりました。 - “silent”な変更の際にもValidationが走るようになりました。これによって
isValid
メソッドがなくなりました。 - mixed-mode APIのために、
Backbone.sync
がemulateHTTP
とemulateJSON
をインラインオプションで受け付けるようになりました。 -
Collection
がUnderscoreのエイリアスのメソッド名をプロキシするようになりました(collect, inject, foldl, foldr, head, tail, takeなど)。 -
getByCid
がCollectionから無くなりました。collection.get
がid
とcid
両方で検索するようになりました。 -
parse
関数が定義されていれば、Ajaxコールの後でなくても常に実行されるようになりました。 - Router定義の際の先頭と末尾のスラッシュの正規化におけるバグを修正しました。現在はそのスラッシュがあってもなくても挙動は変わりません。
- Viewを定義する際、実行時に値を決めたい場合、
options
,el
,tagName
は関数として定義されるようになりました。 - デフォルトの
$.ajax
のオーバーライドをもっと便利にするためにBackbone.ajax
が追加されました。AJAXは古すぎるという場合にはそれにサーバ通信する好きなメソッドを設定してください。 -
Collection#sort
がreset
イベントの代わりにsort
イベントを発行するようになりました。 - モデルで
destroy
を実行したときにそのモデルがisNew
であった場合false
が返るようになりました。