backbone里面set原本会触发绑定的change事件,不过如果使用$.extend(true深拷贝一个数据,但是没有实质性改变数据的值,再重新set一下,是不会触发change事件的。
let test = new Backbone.Model() let data = { name: 'yoyo', } test.on('change:data', (e, data) => console.log(data)) test.set('data', data) // triggerlet newdata = $.extend(true, {}, data) test.set('data', newdata) // not trigger
使用的时候应该要小心,一不小心就得不到自己预期的效果。