array-filters.html 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <!DOCTYPE html>
  2. <script src="../../../dist/vue.js"></script>
  3. <div id="test">
  4. Sort by
  5. <select id="sortby" v-model="sortKey">
  6. <option>name</option>
  7. <option>phone</option>
  8. </select>
  9. <br>
  10. <input id="reverse" type="checkbox" v-model="reverse"> Reverse
  11. <hr></hr>
  12. Filter by <input id="search" name="search" v-model="searchText"> in name only
  13. <table id="t1">
  14. <tr><th>Name</th><th>Phone</th></tr>
  15. <tr v-repeat="friends | filterBy searchText in 'name' | orderBy sortKey reverse" class="item">
  16. <td>{{name}}</td>
  17. <td>{{phone}}</td>
  18. </tr>
  19. </table>
  20. <hr></hr>
  21. Object, filtered by input in all fields and reversed
  22. <table id="t2">
  23. <tr><th>Name</th><th>Phone</th></tr>
  24. <tr v-repeat="friendsObj | filterBy searchText | orderBy sortKey !reverse" class="item">
  25. <td>{{name}}</td>
  26. <td>{{phone}}</td>
  27. </tr>
  28. </table>
  29. <hr></hr>
  30. Filter by "Julie" in
  31. <select id="filterby" v-model="filterKey">
  32. <option>name</option>
  33. <option>phone</option>
  34. </select>
  35. and reversed with literal -1
  36. <table id="t3">
  37. <tr><th>Name</th><th>Phone</th></tr>
  38. <tr v-repeat="friends | filterBy 'Julie' in filterKey | orderBy sortKey -1" class="item">
  39. <td>{{name}}</td>
  40. <td>{{phone}}</td>
  41. </tr>
  42. </table>
  43. </div>
  44. <script>
  45. new Vue({
  46. el: '#test',
  47. data: {
  48. searchText: '',
  49. filterKey: 'name',
  50. sortKey: 'name',
  51. reverse: false,
  52. friends: [
  53. {name:'John', phone:'555-1276', hidden: { id: 'hidden!' } },
  54. {name:'Mary', phone:'800-BIG-MARY'},
  55. {name:'Mike', phone:'555-4321'},
  56. {name:'Adam', phone:'555-5678'},
  57. {name:'Julie', phone:'555-8765'},
  58. {name:'Juliette', phone:'555-5678'}
  59. ],
  60. friendsObj: {
  61. a: {name:'John', phone:'555-1276', hidden: { id: 'hidden!' } },
  62. b: {name:'Mary', phone:'800-BIG-MARY'},
  63. c: {name:'Mike', phone:'555-4321'},
  64. d: {name:'Adam', phone:'555-5678'},
  65. e: {name:'Julie', phone:'555-8765'},
  66. f: {name:'Juliette', phone:'555-5678'}
  67. }
  68. }
  69. })
  70. </script>