以下は私のcoffeescriptコードの一部です
class Floor extends Backbone.Model
defaults:
"array":[]
initialize: ->
a = []
for i in [0..10] by 1
tmp = {
x: i*10,
y: i*10
}
a.push(tmp)
this.set('array', a)
class FloorView extends Backbone.View
initialize: ->
this.model.on('change:array', this.renderArray, this)
renderArray: ->
console.log 'Do something'
return this
floor1 = new Floor
floorView = new floorView({ model:floor1})
次の 3 行は、renderArray メソッドを呼び出す変更イベントを発生させません。
array = floor1.get('array')
array[0].x = 1000;
floor1.set('array',array)
しかし、次のコードは実際に renderArray メソッドを呼び出します
floor1.set('array',{});
配列内のオブジェクトの変更されたプロパティを検出する方法はありますか?
または私が間違ったことをしましたか?