javascript - 使用 vue js 过滤数据
问题描述
我已经从 API 加载了一个数据,并在此处使用 VueJS 显示。我在users[]
数组中有用户信息。我也有两种计划的用户:basic_plan
和standard_plan
. 目前它显示所有用户。
现在我想对这个例子同样应用过滤器:https ://codepen.io/marn/pen/jeyXKL?editors=0010
我也得到了一个filter
未定义的错误
过滤器:
<input type="radio" v-model="selectedItems" value="All" /> All
<input type="radio" v-model="selectedItems" value="basic_plan" /> Basic
<ul
v-for="(user, index) in selectedUser.data"
:key="index"
class="watchers divide-y divide-gray-200"
>
<li class="py-4">
<div class="mx-4 flex space-x-3">
<span
class="inline-flex items-center justify-center h-8 w-8 rounded-full bg-gray-500"
>
</span>
<div class="flex-1 space-y-1">
<h3 class="text-sm font-medium">
{{ user.name }}
</h3>
<div class="flex items-center justify-between">
<p class="text-sm font-medium text-indigo-500">
{{ user.plan }}
</p>
</div>
</div>
</div>
</li>
</ul>
</div>
</template>
<script
export default {
data() {
return {
users: [],
selectedItems:"All"
};
},
created() {
this. users();
},
methods: {
users {
axios
.get('api/users')
.then(response => {
this.users = response.data;
}
},
computed: {
selectedUser: function() {
if(this.selectedItems ==="All"){
return this.users
}else{
return this.users.data.filter(function(item) {
console.log(item)
return item.plan === this.selectedItems;
});
}
}
}
};
</script>
当全部被选中时,vue 开发工具会显示这个
selectedUser:Object //OBJECT SHOWING
data:Array[10]
links:Object
meta:Object
but when basic radio is selected vue shows this
selectedUser:Array[1] //ARRAY SHOWING
0:Object
price:"10"
plan:"basic_planl"
解决方案
如果要过滤掉特定用户,必须将“过滤器”功能应用于用户变量,如下所示:
this.users.filter(...)
使用此功能,您可以根据用户的计划过滤用户,如下所示:
this.users.filter((user) =>
user.plan === this.selectedItems;
});
对于现代方法,我使用了箭头函数。在不使用大括号的情况下,函数内部的语句默认返回,这就是为什么没有“return”语句的原因。
推荐阅读
- excel - Excel VBA button. Copy rows from Sheet1 to Sheet2 / Condition: column value
- google-maps - GoogleMaps "Sorry, we have no imagery here" in InternetExplorer 11
- python - Python DictWriter 无法正确写入 lineterminator 作为 '\r\n'
- python - TypeError: 'str' object object 在简单的 read_csv 示例中不可调用
- java - servlet programmatically set authentication
- javascript - Chart.js how to increase segments size to be more evenly distributed
- python-3.x - 我们如何获得 .msg 附件文件?
- reactjs - Upgrade React-Bootstrap from 0.31.0 to 0.32.4 ( UNMET PEER DEPENDENCY )
- azure - How to get Organization name from Azure openid?
- mysql - MySQL - custom, additional columns based on foreign keys with other table