У меня есть следующий код. Я хочу обновить results-box
со случайным выбранным выбором. Как обновить шаблон в событии @click
.
<template>
<div class="container">
<button @click="getDecision()" class="ui primary button">Discover</button>
<p id="results-box"></p>
</div>
</template>
<script>
export default {
name: "SlapButton",
data() {
return {
}
},
methods: {
getDecision: function () {
var decisions = [
"choice 1",
"choice 2",
"choice 3",
"choice 4",
"choice 5",
"choice 6"
]
var randNum = Math.floor((Math.random() * decisions.length) + 0);
var randChoice = decisions[randNum];
}
}
}
</script>
Когда пользователь нажимает на кнопку getDecision()
вызывается и выбирает случайный выбор из массива decisions
. Как отобразить этот случайный выбор randChoice
в поле результатов p
tag #results-box
.
Вот демонстрационный пример и еще один микропривод
В принципе. Вам понадобится переменная, которая будет удерживать randChoice
только вы определяете эту переменную внутри объекта data(){}
, просто дайте ей значение внутри вашего метода следующим образом:
export default {
name: "SlapButton",
data() {
return {
randomChoice: false
}
},
methods: {
getDecision: function () {
var decisions = [
"choice 1",
"choice 2",
"choice 3",
"choice 4",
"choice 5",
"choice 6"
]
var randNum = Math.floor((Math.random() * decisions.length) + 0);
this.randomChoice = decisions[randNum];
}
}
}
Теперь просто покажите эти данные в своем элементе следующим образом:
<p id="results-box"> {{randomChoice}} </p>
попробуйте следующий код и, пожалуйста, уточните, если это не сработает:
<template>
<div class="container">
<button @click="getDecision" class="ui primary button">Discover</button>
<p id="results-box">
{{choice}}
</p>
</div>
</template>
<script>
export default {
name: "SlapButton",
data() {
return {
choice: '',
decisions = [
"choice 1",
"choice 2",
"choice 3",
"choice 4",
"choice 5",
"choice 6"
]
}
},
methods: {
getDecision() {
var randNum = Math.floor((Math.random() * this.decisions.length) + 0);
this.choice = this.decisions[randNum];
}
}
}
</script>
Property or method "choice" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property.