我有以下Vue.js组件:
Vue.component('channels-list', {
data() {
return {
channels: [],
}
},
methods: {
getChannels() {
this.$http.get('/channels')
.then(response => {
this.channels = response.data;
});
}
},
ready() {
this.getChannels();
}
});
channel 只是对象的数组,例如:
[{
"id": 1,
"title": "ANB",
"image_url": "/img/1.png",
"popular": true
}, {
"id": 2,
"title": "Roya TV",
"image_url": "/img/2.png",
"popular": false
}]
现在,我想创建一个新的组件属性,例如
popularChannels
,它将在 View 中仅显示流行的 channel 。我试图像在其他MVVM-frameworks中那样做:
data() {
return {
channels: [],
popularChannels: function() {
return this.channels.filter(function(item) {
return item.popular
});
}
}
},
但这是行不通的。
你能告诉我如何在Vue.js中做到吗?谢谢你。
最佳答案
如果我理解正确,那么您想要的是computed property。
如果是这样,您可以像这样简单:
data() {
return {
channels: [],
}
},
computed: {
popularChannels: function() {
return this.channels.filter(function(item) {
return item.popular
});
}
}