在数据键的值上调用方法?
Call a method on the value of a data key?
我一直在开发一款游戏,我需要根据键 'sides' 的值调用一个函数(类似于 'onclick="rollDice(6)"')。我试过使用小胡子插值和 v 绑定,但我似乎无法 return 除了 NaN 或未定义之外的任何东西。
相关标记:
<v-list>
<v-list-tile v-for="die in dice" :key="die.name">
<v-list-tile-avatar>
<v-avatar size="32px" tile @click="rollDice()" >
<img :src="die.img">
</v-avatar>
</v-list-tile-avatar>
<v-list-tile-title>{{ die.name }}</v-list-tile-title>
</v-list-tile>
</v-list>
来自数据:
dice: [
{ img: require("../assets/d4.svg"), name: "d4", sides: 4 },
{ img: require("../assets/d6.svg"), name: "d6", sides: 6 },
{ img: require("../assets/d8.svg"), name: "d8", sides: 8 },
]
来自方法:
rollDice: function(sides){
var rollResult = Math.ceil(Math.random() * sides)
console.log(rollResult)
}
我试图使 linked 代码保持最少,但如果我能 link 更进一步,我会很高兴。预先感谢您的协助!
您不会像这样将 die.sides
传递给点击处理程序:@click="rollDice(die.sides)"
。
完整代码为:
<v-list>
<v-list-tile v-for="die in dice" :key="die.name">
<v-list-tile-avatar>
<v-avatar size="32px" tile @click="rollDice(die.sides)" >
<img :src="die.img">
</v-avatar>
</v-list-tile-avatar>
<v-list-tile-title>{{ die.name }}</v-list-tile-title>
</v-list-tile>
</v-list>
所以,我的问题很简单。我进行了以下更改,在对单击事件进行了以下更改后,它似乎按预期工作:
<v-avatar size="32px" tile @click="rollDice(die.sides)">
如果有更好的方法可以做到这一点,我很想看看。我是 Vue 的新手,但对它很感兴趣,但我绝对愿意学习一些最佳实践!
<v-list>
<v-list-tile v-for="(die, index) in dice" :key="die.name">
<v-list-tile-avatar>
<v-avatar size="32px" tile @click="rollDice(die.sides)" >
<img :src="die.img">
</v-avatar>
</v-list-tile-avatar>
<v-list-tile-title>{{ die.name }}</v-list-tile-title>
</v-list-tile>
我一直在开发一款游戏,我需要根据键 'sides' 的值调用一个函数(类似于 'onclick="rollDice(6)"')。我试过使用小胡子插值和 v 绑定,但我似乎无法 return 除了 NaN 或未定义之外的任何东西。
相关标记:
<v-list>
<v-list-tile v-for="die in dice" :key="die.name">
<v-list-tile-avatar>
<v-avatar size="32px" tile @click="rollDice()" >
<img :src="die.img">
</v-avatar>
</v-list-tile-avatar>
<v-list-tile-title>{{ die.name }}</v-list-tile-title>
</v-list-tile>
</v-list>
来自数据:
dice: [
{ img: require("../assets/d4.svg"), name: "d4", sides: 4 },
{ img: require("../assets/d6.svg"), name: "d6", sides: 6 },
{ img: require("../assets/d8.svg"), name: "d8", sides: 8 },
]
来自方法:
rollDice: function(sides){
var rollResult = Math.ceil(Math.random() * sides)
console.log(rollResult)
}
我试图使 linked 代码保持最少,但如果我能 link 更进一步,我会很高兴。预先感谢您的协助!
您不会像这样将 die.sides
传递给点击处理程序:@click="rollDice(die.sides)"
。
完整代码为:
<v-list>
<v-list-tile v-for="die in dice" :key="die.name">
<v-list-tile-avatar>
<v-avatar size="32px" tile @click="rollDice(die.sides)" >
<img :src="die.img">
</v-avatar>
</v-list-tile-avatar>
<v-list-tile-title>{{ die.name }}</v-list-tile-title>
</v-list-tile>
</v-list>
所以,我的问题很简单。我进行了以下更改,在对单击事件进行了以下更改后,它似乎按预期工作:
<v-avatar size="32px" tile @click="rollDice(die.sides)">
如果有更好的方法可以做到这一点,我很想看看。我是 Vue 的新手,但对它很感兴趣,但我绝对愿意学习一些最佳实践!
<v-list>
<v-list-tile v-for="(die, index) in dice" :key="die.name">
<v-list-tile-avatar>
<v-avatar size="32px" tile @click="rollDice(die.sides)" >
<img :src="die.img">
</v-avatar>
</v-list-tile-avatar>
<v-list-tile-title>{{ die.name }}</v-list-tile-title>
</v-list-tile>