2017-05-30 26 views
0

我正在使用VueRouter。我需要我的用户在直接导航到单个业务时能够看到数据。为了做到这一点,我试图创建这个方法来遍历我的数据,并将路由与数据的属性值进行匹配。VueJS获取与路由匹配的信息

我有以下方法:但

methods: { 
    finalItem() { 
     return this.businesses.filter((business) => { 
     return business.link === this.$route.params.listing 
     }) 
    } 
    } 

不是获取返回的业务数据,我越来越:

boundFn

我也尝试过这样的事情:

finalItem() { 
     return this.businesses.filter((business) => { 
     return business.match(this.$route.params.listing) 
     }) 
    } 

但得到了同样的问题。

+0

你试图访问'finalItem'?或'finalItem()'?你需要做后者,因为它是一种方法 – thanksd

+0

良好的捕获,工作:)虽然我无法访问'finalItem().name'的等价物。 – Auzy

+0

我把它改成了'calculate',这样我就可以不用'()'来使用,并且仍然无法访问属性。 – Auzy

回答

1

由于finalItem是一种方法,如果您尝试像计算属性那样访问它,它将简单地返回该方法的函数定义(因此boundFn)。

变化的方法来计算一个属性:

computed: { 
    finalItem() { 
    return this.businesses.filter((business) => { 
     return business.link === this.$route.params.listing 
    }) 
    }, 
} 

否则,你就需要实际调用的方法:

// in your component's script 
console.log(this.finalItem()); 

// in your template 
{{ finalItem() }}