javascript - 如何使用计算属性过滤 VueJS 中的 v-for 循环的结果?
问题描述
我正在尝试使用计算属性来过滤使用 v-for 循环时显示的结果。但是,我仍然可以在我的应用程序的 bar.js 中看到所有已清除的栏。我希望只看到一个,因为它设置为“真”。因此,我在哪里错了?欢迎任何帮助。
<li v-for="bar in bars" :key="bar.id">
<h2>{{ bar.barName }}</h2>
</li>
<script>
import bars from "./../data/bars";
export default {
data() {
return {
bars: bars
};
},
computed: {
bars: function() {
return this.default.filter(function(u) {
return u.newListing
})
}
}
};
</script>
在一个名为 bar.js 的附加文件中,我有以下内容;
export default [
{
barName: "Mikes",
newListing: true,
},
{
barName: "Cheers",
newListing: false,
},
{
barName: "Biker Bar",
newListing: false,
}
];
解决方案
您的代码中有两个bars
,因此尚不清楚应该使用哪个模板。看起来它正在选择bars
in data
。您应该将计算属性重命名为唯一的,然后在模板中使用它。例如:
export default {
data() {
return {
bars: [/* your bar data goes here */]
};
},
computed: {
bars_filtered: function() {
return this.bars.filter(u => u.newListing)
}
}
};
然后在您的模板中,您将遍历bars_filtered
:
v-for="bar in bars_filtered"
推荐阅读
- machine-learning - 如何通过 keras 多类分类提高准确率?
- jquery - 单击 div 外部时删除类(包括子项)
- xamarin.forms - Xamarin.Forms:将项目添加到代码中的特定网格行
- maven - 无法在 Apache Zeppelin 笔记本中下载 Maven 依赖项
- angularjs - 显示在 AngularJS 中填写表格后,请等待或处理给用户的消息
- c++ - 将原始指针从较大的对象传递到较小的对象以做专门的事情的正确方法是什么?
- azure - 使用 Python 设置 Azure Active Directory SAML
- html - “d-none 和 d-sm-block” 在段落的所需区域不起作用
- dynamics-crm - Dynamics Field Service Mobile 深层链接未导航到实体
- r - 使用 groupby 另一列填充缺失的日期