【问题标题】:Combine two computed properties into one将两个计算属性合二为一
【发布时间】:2019-10-26 12:09:16
【问题描述】:

我有一个选择框和一个搜索字段来过滤我的数据表。我创建了两个计算属性——第一个是一个类别过滤器,它从 get 调用中获取 name 和 id,并将值与另一个调用中的值进行比较。第二个计算属性用于普通表搜索。我怎样才能将这两个组合成一个属性,以便我可以将它应用到桌子上?

计算:

computed: {
  filteredTableData() {
      if (this.selectedId !== null) {
          const filtered = this.tableData.filter(d => {   
              let mediaTypeJ = this.mediaTypeId.find(x => {
              return x.ID === this.selectedId;
          });  
      return d.mediaTypeName === mediaTypeJ.name;
      });
      return filtered
      }
  return this.tableData
  },

  searchFilter() {
      return this.tableData.filter (item => {
      return 
  item.name.toLowerCase().match(this.search.toLowerCase()) ||     
  item.level.toLowerCase().match(this.search.toLowerCase()) ||      
  item.house.toLowerCase().match(this.search.toLowerCase())
   });  
  },
 }

HTML:

<tbody>       
    <tr v-for="(item, index) in filteredTableData">  
        <td>{{ item.name }}</td>  
        <td>{{ item.level }}</td>  
        <td>{{ item.house }}</td>  
    </tr>
</tbody>

谢谢!

【问题讨论】:

    标签: javascript json vue.js axios computed-properties


    【解决方案1】:

    你不会把它们结合起来。您的过滤器功能应该只考虑这两个属性,并且它将在任何一个更改时触发。所以本质上你的计算过滤器是组合属性。

    【讨论】:

      【解决方案2】:

      试试这个:

        searchFilter() {
            return this.filteredTableData.filter (item => {
              return 
                item.name.toLowerCase().match(this.search.toLowerCase()) ||     
                item.level.toLowerCase().match(this.search.toLowerCase()) ||      
                item.house.toLowerCase().match(this.search.toLowerCase())
            });  
        },
      

      filteredTableData过滤为searchFilter,然后在模板中使用。

      <tbody>       
          <tr v-for="(item, index) in searchFilter">  
              <td>{{ item.name }}</td>  
              <td>{{ item.level }}</td>  
              <td>{{ item.house }}</td>  
          </tr>
      </tbody>
      

      【讨论】:

      • 我对 Vue、Axios 等还是很陌生,我觉得很傻,我没有想到这一点。有用!谢谢!
      • 继续加油!祝你旅途愉快:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-13
      • 2015-12-30
      相关资源
      最近更新 更多