我正在try 将这https://github.com/matfish2/vue-tables-2与Vue 2.1.8结合使用.

它工作得很好,但我需要使用自定义过滤器根据字段的值等设置一些字段的格式.

在选项中,我有:

customFilters: [
{
  name:'count',
  callback: function(row, query) {
    console.log('see me?'); // Not firing this
    return row.count[0] == query;
}
}
]

文件中说我必须这样做:

Using the event bus:

Event.$emit('vue-tables.filter::count', query);

但我不知道该把这个放在哪里?我go 过很多地方.例如,在我的axios成功回调中,但什么都没有.

我想这是非常基本的,我应该知道这一点,但我不知道.所以,如果有人能告诉我把活动巴士工作人员放在哪里,那就太棒了!

推荐答案

doctor 们可以更好地描述这一点.这有点难理解.

您需要导入vue-tables-2的名为export Event的文件,这样就有了表的事件总线,并在自定义单击处理程序中发出自定义事件.

在演示中,它在全局对象上可用.在ES6中,您将按照文档中的说明导入它,并使用import {ServerTable, ClientTable, Event} from 'vue-tables-2';

请看下面或这fiddle个字母表过滤器的演示.

该演示类似于vue-tables-1演示小提琴,可以找到here个.

// Vue.use(VueTables)
const ClientTable = VueTables.ClientTable
const Event = VueTables.Event // import eventbus

console.log(VueTables);
Vue.use(ClientTable)

new Vue({
  el: "#people",
  methods: {
    applyFilter(letter) {
      this.selectedLetter = letter;
      Event.$emit('vue-tables.filter::alphabet', letter);
    }
  },
  data() {
    return {
      letters: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'],
      selectedLetter: '',
      columns: ['id', 'name', 'age'],
      tableData: [{
        id: 1,
        name: "John",
        age: "20"
      }, {
        id: 2,
        name: "Jane",
        age: "24"
      }, {
        id: 3,
        name: "Susan",
        age: "16"
      }, {
        id: 4,
        name: "Chris",
        age: "55"
      }, {
        id: 5,
        name: "Dan",
        age: "40"
      }],
      options: {
        // see the options API
        customFilters: [{
          name: 'alphabet',
          callback: function(row, query) {
            return row.name[0] == query;
          }
        }]
      }
    }
  }
});
#people {
  text-align: center;
  width: 95%;
  margin: 0 auto;
}
h2 {
  margin-bottom: 30px;
}
th,
td {
  text-align: left;
}
th:nth-child(n+2),
td:nth-child(n+2) {
  text-align: center;
}
thead tr:nth-child(2) th {
  font-weight: normal;
}
.VueTables__sort-icon {
  margin-left: 10px;
}
.VueTables__dropdown-pagination {
  margin-left: 10px;
}
.VueTables__highlight {
  background: yellow;
  font-weight: normal;
}
.VueTables__sortable {
  cursor: pointer;
}
.VueTables__date-filter {
  border: 1px solid #ccc;
  padding: 6px;
  border-radius: 4px;
  cursor: pointer;
}
.VueTables__filter-placeholder {
  color: #aaa;
}
.VueTables__list-filter {
  width: 120px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-tables-2@1.4.70/dist/vue-tables-2.min.js"></script>
<div id="people">
  <button @click="applyFilter(letter)" class="btn btn-default" v-for="letter in letters" :class="{active: letter==selectedLetter}">
    {{letter}}
  </button>
  <button  class="btn btn-default" @click="applyFilter('')">
  clear
  </button>
  <v-client-table :data="tableData" :columns="columns" :options="options"></v-client-table>
</div>

Vue.js相关问答推荐

Vue.js编译的render函数不起作用

Nuxt3 / Vue3 - 当属性更改时如何动态更改渲染组件?

如何将外部 svg 转换为 Vue3 组件?

在 Vue.js 2.6 的 Javascript 中访问 的内容

Vue 3 如何通过多个组件传递插槽

vue 不重新渲染数据更改

使用 vue / nuxt js 切换 fontawesome 图标

混合使用 React 和 Vue 是个好主意吗?

vuejs:将props传递给javascript中的组件?

如何在 vue 的 scss 中使用深度 Select 器

使用 v-slot:body 时 Vuetify v-data-table 没有响应

eslint – 如何知道 defined定义规则的位置

SVG 加载 vue-svg-loader; [Vue 警告]:无效的组件定义

Nuxt:显示静态文件夹中的本map像

在 .vue 文件中使用 Vue.set() 和 Vue.use()

如何从 keep-alive 中销毁缓存的 Vue 组件?

未在实例上定义,但在渲染期间引用

无法访问函数内的数据属性

Vue.js 3 - 替换/更新react性对象而不会失go react性

Vue.js 显示空格(换行符)