Guest User

Untitled

a guest
Feb 24th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. var onChange = function(object, onChange) {
  2. var handler = {
  3. get(target, property, receiver) {
  4. try {
  5. return new Proxy(target[property], handler);
  6. } catch (err) {
  7. return Reflect.get(target, property, receiver);
  8. }
  9. },
  10. defineProperty(target, property, descriptor) {
  11. onChange();
  12. return Reflect.defineProperty(target, property, descriptor);
  13. },
  14. deleteProperty(target, property) {
  15. onChange();
  16. return Reflect.deleteProperty(target, property);
  17. }
  18. };
  19. return new Proxy(object, handler);
  20. };
  21.  
  22. var trackingIndexBookingList = {
  23. filtered: []
  24. };
  25.  
  26. // watcher
  27. var watchedBookingList = onChange(trackingIndexBookingList, function() {
  28. console.log('Object changed, triggea el cambio en las vistas: ', trackingIndexBookingList.filtered.length)
  29. });
  30.  
  31. // LUEGO YA PODEMOS LLAMARLO EN NUESTRO EVENTO, POR EJEMPLO CUANDO FILTREMOS UNA DATATABLE
  32. // (esto revisarlo que seguro que se puede simplificar)
  33. dataTableTrackings.on('draw.dt', function(){
  34. trackingIndexBookingList.filtered = []; //vaciamos el array
  35. dataTableTrackings.rows( { filter : 'applied'} ).data().each(function(item, i){
  36. trackingIndexBookingList.filtered.push(item.IdentificadorClick);
  37. });
  38. //triggea el watch
  39. watchedBookingList.filtered = trackingIndexBookingList.filtered;
  40. });
Add Comment
Please, Sign In to add comment