Если вы посмотрите документацию ,
/ random / jokes вернет одну шутку
/ random / jokes /: count возвращает: count jokes
Следовательно, вы можете изменить свой код на что-то вроде ниже:
methods: {
getNJokes(n) {
axios.get(`https://us-central1-dadsofunny.cloudfunctions.net/DadJokes/random/jokes/${n || 1}`, { headers: { Accept: "application/json" } })
.then(response => {
this.jokes = response.data;
})
.catch(err => {
alert(err);
});
}
},
created() {
this.getNJokes(3);
}
Тогда в вашем шаблоне это должно быть joke.setup
и joke.punchline
вместо jokes.setup
и jokes.punchline
.
<p>{{joke.setup}}</p>
<p>{{joke.punchline}}</p>
Тогда, если вы хотите, чтобы кнопка получила дополнительную шутку:
<button type="button" @click="getNJokes(1)">Get Different Joke</button>
Vue.config.productionTip = false;
Vue.config.devtools = false;
new Vue({
el: "#app",
data: () => {
return {
jokes: []
}
},
methods: {
getNJokes(n) {
axios.get(`https://us-central1-dadsofunny.cloudfunctions.net/DadJokes/random/jokes/${n || 1}`, {
headers: {
Accept: "application/json"
}
})
.then(response => {
this.jokes = response.data;
})
.catch(err => {
alert(err);
});
}
},
created() {
this.getNJokes(1);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div v-for="joke in jokes">
<p><strong>{{joke.setup}}</strong> {{joke.punchline}}</p>
</div>
<button @click="getNJokes(1)">Get Another Joke</button>
</div>