在vue.js中过滤PROPS

时间:2018-02-19 06:39:54

标签: vuejs2

我的代码如下

created () {
     EventBus.$on('change',this.formated);
},
props: ['applicants',],
data() {
        return {
            values: [],
      }
},
methods : {
        formated (item) {
         //some code here
        }
}

我在另一个组件中有一些复选框。我试图在这个组件中捕获这些复选框的值。在捕获这些值后,我想过滤道具applicants。我想找出哪些applicants具有复选框的值。然后我想将它们传递给values[]。然后我想在HTML中迭代这些值。

1 个答案:

答案 0 :(得分:1)

阅读评论后,我相信这是你需要做的。您可以使用prop以及format()方法中通过事件总线传递的数据。您需要将两者结合起来并将它们设置为值。我在下面粘贴了代码。但是,不知道两个对象的结构,我无法帮助你。这只是简单的JavaScript。所以你可能需要像Object.assign或.filter或.map方法这样的东西。

created () {
 EventBus.$on('change',this.formatted);
},
props: ['applicants'],
data() {
    return {
        values: [],
      }
},
methods : {
    formatted (item) {
        this.applicants // access the data from your prop
        item // access the data from your event bus
        this.values = someCombinationOf(this.applicants, item)
    }
}

从formatted()函数设置值后,您可以迭代它(例如使用v-for)。每当通过事件总线发出事件时,这将更新您的组件。每当道具改变时,组件也将更新。