繁体   English   中英

Vue js:根据多个属性搜索过滤器无法正常工作

[英]Vue js: search filter according to multiple attributes not working properly

我在 Vue js 中有一个搜索功能,用于搜索来自 API 的数据,它适用于单个数据项( question.questionTitle ),但我的问题是我无法弄清楚如何将它应用于所有数据,如question.namequestion.desc ...有没有办法做到这一点?

 <template> <ul class="container-question" v-for="(question, index) in questions":key="index" > <div v-for="(questions,index) in filteredList":key="index">...... </div> </ul> </template> <script> filteredList() { return this.questions.filter(question => { return question.questionTitle.includes(this.search) }) } </script>

您可以使用|| 检查其他字段中的搜索结果:

 new Vue({ el:"#app", data() { return { search: '', questions: [ { questionTitle: "title1", name: "name1", desc: "desc1", categories: [ { category_name: "category1a" }, { category_name: "category1b" } ] }, { questionTitle: "title2", name: "name2", desc: "desc2", categories: [ { category_name: "category2a" }, { category_name: "category2b" } ] }, { questionTitle: "title3", name: "name3", desc: "desc3", categories: [ { category_name: "category3a" }, { category_name: "category3b" } ] } ] } }, computed: { filteredList() { const search = this.search; return search===''? this.questions: this.questions.filter(question => question.questionTitle.includes(search) || question.name.includes(search) || question.desc.includes(search) || question.categories.some(category => category.category_name.includes(search) ) ) } } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <div class="search-wrapper"> <label>Search title:</label> <input type="text" v-model="search" placeholder="Search title.."/> </div> <ul class="container-question"> <li v-for="(question,questionIndex) in filteredList":key="questionIndex"> {{question.questionTitle}} - {{question.name}} - {{question.desc}} <div class="category" v-for="(allCategories, categoryIndex) in question.categories" v-bind:key="categoryIndex" > <mark> {{ allCategories.category_name }} </mark> </div> </li> </ul> </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM