2017-01-21 12 views
5

मैं इस https://github.com/matfish2/vue-tables-2 का उपयोग वू 2.1.8 के साथ करने का प्रयास कर रहा हूं।वू टेबल्स 2 - कस्टम फ़िल्टर

और यह पूरी तरह से काम कर रहा है लेकिन मैं उनके मूल्य के आधार पर कुछ क्षेत्रों फ़ॉर्मेट करने के लिए कस्टम फिल्टर का उपयोग करने की जरूरत है आदि

विकल्प में मैं इस है:

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); 

लेकिन मुझे नहीं पता कि यह कहां रखा जाए? मैंने कई जगहों की कोशिश की। उदाहरण के लिए मेरे अक्षरों में सफलता कॉलबैक लेकिन कुछ भी नहीं।

मुझे लगता है कि यह बहुत बुनियादी है और मुझे यह पता होना चाहिए लेकिन मैं नहीं करता हूं। तो अगर कोई मुझे बता सकता है कि उस घटना को कहां रखना है बस स्टाफ भयानक होगा!

उत्तर

7

दस्तावेज़ इस बेहतर वर्णन कर सकते हैं। समझना थोड़ा मुश्किल है।

आपको नामांकित निर्यात Event vue-table-2 के आयात करने की आवश्यकता है, इसलिए आपके पास तालिका की ईवेंट बस है और अपने कस्टम क्लिक हैंडलर में कस्टम ईवेंट उत्सर्जित करें।

डेमो में यह वैश्विक वस्तु पर उपलब्ध है। ईएस 6 में आप इसे import {ServerTable, ClientTable, Event} from 'vue-tables-2';

के साथ दस्तावेज़ों में वर्णित अनुसार आयात करेंगे, कृपया नीचे वर्णमाला फ़िल्टर डेमो या fiddle में देखें।

डेमो vue-table-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://rawgit.com/matfish2/vue-tables-2/master/dist/vue-tables.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.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>

+0

बहुत बहुत शुक्रिया! अब यह काम कर रहा है :) – Verba

संबंधित मुद्दे