Javascript 如何将v-for计算数据作为参数发送到Vue.js上的函数?

Javascript 如何将v-for计算数据作为参数发送到Vue.js上的函数?,javascript,html,vue.js,vue-component,Javascript,Html,Vue.js,Vue Component,我觉得这是一个有点特别的问题,我在任何地方都找不到答案。也许Vue.JS中有一些我不知道的东西可以帮我解决这个问题 我希望创建一个小的单页应用程序,使用参数动态更改屏幕。理论上,应用程序应该是动态的,我应该能够在不接触Vue.js应用程序的情况下更新数据库 我有一个小的JSON数据库,上面有一组信息 ["mary","john","alice"] 使用lifecycle钩子beforeMount()在子组件上检索此信息,并将其放入数据上的数组中 data() { return {

我觉得这是一个有点特别的问题,我在任何地方都找不到答案。也许Vue.JS中有一些我不知道的东西可以帮我解决这个问题

我希望创建一个小的单页应用程序,使用参数动态更改屏幕。理论上,应用程序应该是动态的,我应该能够在不接触Vue.js应用程序的情况下更新数据库

我有一个小的JSON数据库,上面有一组信息

["mary","john","alice"]
使用lifecycle钩子
beforeMount()
在子组件上检索此信息,并将其放入
数据上的数组中

data() {
    return {
        names: [],
    }
},

/*...*/

beforeMount() {
    var namesDB = require('../assets/db/names.json');
    this.names = names;
}
通过这个数组,我创建了几个按钮

<button v-for="name in names">{{ name }}</button>
想到了做如下事情:

<button v-for="name in names" @click="say('{{ name }}')">{{ name }}</button>
{{name}
但是,我发现这不起作用,因为控制台返回:
{{{name}


如何将这种类型的计算数据作为参数发送,此外,如何使用父组件的计算数据来更改应用程序的屏幕?(比如说,我想用这个名字来检查某个特定的人)。

在Vue的属性中不使用插值。单击处理程序被解释为一个javascript表达式,
name
v-for
中属于您的范围,所以只需执行此操作

<button v-for="name in names" @click="say(name)">{{ name }}</button>
{{name}

天哪,你说得对。我真不敢相信我没有想到这一点。我想这个问题比我想象的更愚蠢。@concheria这是一个常见的绊脚石,真的。别担心。是的,属性内部的插值很容易成为vue.js中最常见的问题tag@matt正确使用
,可能会不相上下。
<button v-for="name in names" @click="say(name)">{{ name }}</button>