【发布时间】:2021-12-07 05:00:16
【问题描述】:
<template>
<div id="app">
<span v-if="isLoaded" class="select">
<select v-model="selectNum" name="text">
<option value="" selected="selected">status</option>
<option value="ok">ok</option>
<option value="notok">notok</option>
<option value="medium">medium</option>
</select>
</span>
<span class="search-wrapper">
<span class="bar">
<input
type="text"
v-model="search"
placeholder="filter"
class="s-bar"
/>
</span>
</span>
<div v-for="user in users" :key="user.id">
{{ user.name }}
<div v-for="list in lists" :key="list.id">
{{ list.pan }}
</div>
</div>
</div>
</template>
<script>
import { userdata } from "../assets/userdata";
import { listdata } from "../assets/listdata";
export default {
name: "HelloWorld",
data: function () {
return {
users: userdata,
lists: listdata,
search: "",
isLoaded: false,
selectNum: "",
};
},
created() {
this.isLoaded = true;
},
computed: {
sourceInfo() {
function compare(a, b) {
if (a.name < b.name) return -1;
if (a.name > b.name) return 1;
return 0;
}
const res = this.userList
.filter((user) => {
return user.name.toLowerCase().includes(this.search.toLowerCase());
})
.sort(compare);
if (this.selectNum) {
return res.filter((user) => user.status === this.selectNum);
}
return res;
},
},
};
</script>
最初将完全加载用户数据。后来基于两个过滤器,即一个用于搜索过滤器,我应该从所有用户数组中过滤出数组。第二个,对于基于用户数组中的状态的下拉,我需要过滤数组。
如何更改我的代码以使其正常工作。目前它没有从搜索或下拉列表中过滤数组。但只是显示数据。
【问题讨论】:
-
您是为拥有许多用户和多种设备的生产应用程序构建它,还是这是一个爱好项目?
-
不,我只是在学习 vuejs 和练习。
标签: javascript vue.js