【发布时间】:2018-04-13 02:58:03
【问题描述】:
我正在尝试使用带有 v-for 的本地过滤器,但出现错误
属性或方法“filterByTitle”未在实例上定义,但 在渲染期间引用。确保此属性是反应性的, 无论是在数据选项中,还是对于基于类的组件,通过 初始化属性。
代码如下
<template>
<div class="row">
<div class="col pt-5">
<ul class="blog-list-single" v-for="(post, index) in posts | filterByTitle" :key="index">
<li class="title">{{ post.title }}</li>
<li class="author">{{ post.author }}</li>
</ul>
</div>
</div>
</template>
<style lang="scss">
</style>
<script>
export default {
data() {
return {
posts: [
{ title: 'a', author: 'nd' },
{ title: 'b', author: 'nd' },
{ title: 'c', author: 'nd' },
],
selectedValue: 'a',
}
},
filters: {
filterByTitle(value) {
return value.filter(el => el.title == this.selectedValue)
}
},
}
</script>
【问题讨论】:
-
你不能在 Vue 2 中使用像这样的过滤器。使用计算属性。
-
是的,Vue 2 删除了过滤器。伯特在下面的回答解决了这个问题。
标签: javascript filter vue.js vuejs2 v-for