grid.js 851 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // register the grid component
  2. Vue.component('demo-grid', {
  3. template: '#grid-template',
  4. replace: true,
  5. data: function () {
  6. return {
  7. columns: null,
  8. sortKey: '',
  9. filterKey: '',
  10. reversed: {}
  11. }
  12. },
  13. compiled: function () {
  14. // initialize reverse state
  15. var self = this
  16. this.columns.forEach(function (key) {
  17. self.reversed.$add(key, false)
  18. })
  19. },
  20. methods: {
  21. sortBy: function (key) {
  22. this.sortKey = key
  23. this.reversed[key] = !this.reversed[key]
  24. }
  25. }
  26. })
  27. // bootstrap the demo
  28. var demo = new Vue({
  29. el: '#demo',
  30. data: {
  31. search: '',
  32. gridColumns: ['name', 'power'],
  33. gridData: [
  34. { name: 'Chuck Norris', power: Infinity },
  35. { name: 'Bruce Lee', power: 9000 },
  36. { name: 'Jacky Chang', power: 7000 },
  37. { name: 'Jet Li', power: 8000 }
  38. ]
  39. }
  40. })