gpt4 book ai didi

javascript - Backbone 模型数组属性更改和更改事件监听器并不总是触发

转载 作者:数据小太阳 更新时间:2023-10-29 04:26:21 26 4
gpt4 key购买 nike

<分区>

我在 Backbone 中使用更改事件发现了一些奇怪的东西。它与具有数组作为属性的模型一起使用。如果我让属性在内部推送一个新值并将其设置回模型,则不会触发更改事件...

这是一个完整的文档示例:

var TestModel = Backbone.Model.extend({
defaults : {
numbers : []
},

initialize : function() {
this.on('change:numbers', this.changedEvent);
},

changedEvent : function() {
console.log('model has changed');
}
});

var oTestModel = new TestModel();
oTestModel.set('numbers', [2, 3, 4]); // change:numbers Event is fired

var aNumbers = oTestModel.get('numbers');
aNumbers.push(5);

oTestModel.set('numbers', aNumbers); // change:numbers event is NOT fired BUT WHY???

// oTestModel.set('numbers', [2, 3, 4]);
// If this line is not commented out change:numbers event is also fired

console.log(oTestModel.toJSON()); // Dumps out [2,3,4,5] Respective [2,3,4] if line above is not commented out

提前致谢。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com