从 Vue 版本 2 开始,过滤器只能在文本插值 ( {{ }} tags
) 中使用。请参阅从 Vue 版本 1 迁移的文档。
您可以使用计算属性来过滤用户并在v-for
指令中使用该计算属性:
computed: {
filteredUsers: function() {
let key = this.searchKey.toUpperCase();
return this.users.filter((user) => {
return user.name.toUpperCase().indexOf(key) !== -1
})
},
paginatedUsers: function() {
var list = this.filteredUsers;
this.resultCount = list.length
if (this.currentPage >= this.totalPages) {
this.currentPage = this.totalPages
}
var index = this.currentPage * this.itemsPerPage
return list.slice(index - 1, index - 1 + this.itemsPerPage)
}
}
<li v-for="user in paginatedUsers">{{ user.name }}</li>
此外,当v-for
用于生成一系列数字时,就像您为页码所做的那样,Vue 版本从 1 而不是 0 开始索引。因此,您还需要根据起始索引 0 来更新逻辑。
这是一个工作小提琴。