我有以下Vue.js组件:
Vue.component('channels-list', {
data() {
return {
channels: [],
}
},
methods: {
getChannels() {
this.$http.get('/channels')
.then(response => {
this.channels = response.data;
});
}
},
ready() {
this.getChannels();
}
});
频道只是一组对象,例如:
[{
"id": 1,
"title": "ANB",
"image_url": "/img/1.png",
"popular": true
}, {
"id": 2,
"title": "Roya TV",
"image_url": "/img/2.png",
"popular": false
}]
现在我想创建一个新的组件属性,例如名为popularChannels
,它将在视图中用于仅显示热门频道。
我尝试像在其他MVVM框架中那样做:
data() {
return {
channels: [],
popularChannels: function() {
return this.channels.filter(function(item) {
return item.popular
});
}
}
},
但这不起作用。
请告诉你如何在Vue.js中做到这一点?谢谢。
答案 0 :(得分:4)
如果我理解你想要的是computed property。
如果是这样,你可以这么简单:
data() {
return {
channels: [],
}
},
computed: {
popularChannels: function() {
return this.channels.filter(function(item) {
return item.popular
});
}
}