Javascript 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循环

我在vue模板中有一个表,搜索不起作用,不知道我错过了什么

<input type="text" class="dv-header-input" v-model="query.search_input"
  @keyup.enter="fetchRecords()">
filteredRow
中,I
console.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;
    });
  }