javascript 使用vanilla JS观察对象属性更改
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 使用vanilla JS观察对象属性更改相关的知识,希望对你有一定的参考价值。
var onChange = function(object, onChange) {
var handler = {
get(target, property, receiver) {
try {
return new Proxy(target[property], handler);
} catch (err) {
return Reflect.get(target, property, receiver);
}
},
defineProperty(target, property, descriptor) {
onChange();
return Reflect.defineProperty(target, property, descriptor);
},
deleteProperty(target, property) {
onChange();
return Reflect.deleteProperty(target, property);
}
};
return new Proxy(object, handler);
};
var trackingIndexBookingList = {
filtered: []
};
// watcher
var watchedBookingList = onChange(trackingIndexBookingList, function() {
console.log('Object changed, triggea el cambio en las vistas: ', trackingIndexBookingList.filtered.length)
});
// LUEGO YA PODEMOS LLAMARLO EN NUESTRO EVENTO, POR EJEMPLO CUANDO FILTREMOS UNA DATATABLE
// (esto revisarlo que seguro que se puede simplificar)
dataTableTrackings.on('draw.dt', function(){
trackingIndexBookingList.filtered = []; //vaciamos el array
dataTableTrackings.rows( { filter : 'applied'} ).data().each(function(item, i){
trackingIndexBookingList.filtered.push(item.IdentificadorClick);
});
//triggea el watch
watchedBookingList.filtered = trackingIndexBookingList.filtered;
});
以上是关于javascript 使用vanilla JS观察对象属性更改的主要内容,如果未能解决你的问题,请参考以下文章
javascript 使用vanilla JS从URL查询字符串中获取值
如何在 Vanilla JavaScript (JS) 中导入/导出类
javascript AJAX与Vanilla JS
javascript JQuery到Vanilla js指南
javascript 查找匹配对象Id - vanilla js
javascript Vanilla JS in a Nutshell