Javascript Vue:实现Vue表搜索
我在vue模板中有一个表,搜索不起作用,不知道我错过了什么Javascript Vue:实现Vue表搜索,javascript,arrays,object,search,vue.js,Javascript,Arrays,Object,Search,Vue.js,我在vue模板中有一个表,搜索不起作用,不知道我错过了什么 <input type="text" class="dv-header-input" v-model="query.search_input" @keyup.enter="fetchRecords()"> 在filteredRow中,Iconsole.log(String(row[key]).indexOf(this.query.search\u input))给出了30次0 我遗漏了什么,最好的方法是什么。for循环
<input type="text" class="dv-header-input" v-model="query.search_input"
@keyup.enter="fetchRecords()">
在filteredRow
中,Iconsole.log(String(row[key]).indexOf(this.query.search\u input))
给出了30次0
我遗漏了什么,最好的方法是什么。for循环永远不会通过行中的第一个键。只有在找到以下字符串时,才希望返回
true
:
filteredRow: function(){
return this.model.data.filter((row) => {
for(var key in row){
if(String(row[key]).indexOf(this.query.search_input) !== -1){
return true;
}
}
return false;
});
}
for循环永远不会通过
行中的第一个键
。
@jeff(最后是某人),那么该怎么办?@Gammer没问题indexOf
返回-1
当它找不到字符串时,不能将其用作布尔值,因为如果在第一个字符处找到字符串,它将返回0
,请理解,完美filteredRow
将适用于基于条件的筛选器?,这意味着从下拉列表中选择一个表列,然后从另一个下拉列表(如=
)中选择一个运算符,然后键入要针对该列搜索的数字?您必须为此编写一些新代码,因为这只是一个字符串筛选器
export default {
props: [
'source',
'title',
],
data() {
return {
model: { data: [] },
columns: {},
query: {
search_input: ''
},
}
},
created() {
this.fetchRecords()
},
methods: {
fetchRecords() {
var vm = this
// Not original API,
axios.get(/get/Details)
.then(function(response) {
Vue.set(vm.$data, 'model', response.data.model)
Vue.set(vm.$data, 'columns', response.data.columns)
})
.catch(function(response) {
console.log(response)
})
}
},
computed: {
filteredRow: function(){
return this.model.data.filter((row) => {
for(var key in row){
return String(row[key]).indexOf(this.query.search_input);
}
});
}
}
}
filteredRow: function(){
return this.model.data.filter((row) => {
for(var key in row){
if(String(row[key]).indexOf(this.query.search_input) !== -1){
return true;
}
}
return false;
});
}