根据过滤结果动态获取项目列表计数
Get items list count dynamically according to the filtering result
我的应用程序显示总 post 秒计数,最初是根据服务器的响应。
但是这些post是可以过滤的,我需要根据过滤结果动态获取post个数
inputFilter:function() {
var vm = this;
return vm.posts.filter((post) => {
var vmPosts = post.title.match(searchValue);
var countFilteredPostsDinammicaly = vmPosts.count(); //??????
return vmPosts;
});
}
谢谢。
您可以创建一个 computed
属性,这将 return 您根据应用的 query/filters 过滤数组。
另一个 computed
属性 将 return 过滤数组的长度,即过滤 post 计数显示在 DOM.
new Vue({
el: '#app',
data: {
posts: [
{ title: 'apple is best fruit' },
{ title: 'orange is 2020 best fruit' },
{ title: 'apples are sweeter than oranges in 2020' }
],
query: ''
},
computed: {
getFilteredPosts () {
return this.posts.filter(post => post.title.includes(this.query))
},
getFilteredPostsCount () {
return this.getFilteredPosts.length
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<input placeholder="search for `apple`" v-model="query"/>
<br/><br/>
Filtered posts count: {{ getFilteredPostsCount }}
<br/><br/>
Filtered posts:
<li v-for="(post, i) in getFilteredPosts" :key="i">
{{ post.title }}
</li>
</div>
我的应用程序显示总 post 秒计数,最初是根据服务器的响应。
但是这些post是可以过滤的,我需要根据过滤结果动态获取post个数
inputFilter:function() {
var vm = this;
return vm.posts.filter((post) => {
var vmPosts = post.title.match(searchValue);
var countFilteredPostsDinammicaly = vmPosts.count(); //??????
return vmPosts;
});
}
谢谢。
您可以创建一个 computed
属性,这将 return 您根据应用的 query/filters 过滤数组。
另一个 computed
属性 将 return 过滤数组的长度,即过滤 post 计数显示在 DOM.
new Vue({
el: '#app',
data: {
posts: [
{ title: 'apple is best fruit' },
{ title: 'orange is 2020 best fruit' },
{ title: 'apples are sweeter than oranges in 2020' }
],
query: ''
},
computed: {
getFilteredPosts () {
return this.posts.filter(post => post.title.includes(this.query))
},
getFilteredPostsCount () {
return this.getFilteredPosts.length
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<input placeholder="search for `apple`" v-model="query"/>
<br/><br/>
Filtered posts count: {{ getFilteredPostsCount }}
<br/><br/>
Filtered posts:
<li v-for="(post, i) in getFilteredPosts" :key="i">
{{ post.title }}
</li>
</div>