Laravelを使ってJSONを返すAPIを作成しました。
これをvue.jsに渡し、描画する処理を行いたいのですが、methods
のshow
イベントだけ動きません、、
以下のコードより、@click="article.show"
の部分にmethodsのshow1
が入るよう、JSONの内容が呼び出され、別コンポーネントで定義されているモーダルが表示させるコードとなっています。
show1
はJSONのなかに入っていますが、あまりこの方法でイベントを発火させるべきだとは思っていません...
何か他に良い方法があれば教えていただきたいです。
vue.js
1<template> 2 <v-app> 3 <v-row justify="center" style="margin: 0" > 4 <v-col v-for="(article, id) in articles" :key="id"> 5 <v-card class="card" elevation=20 slot="activator" @click="article.show"> 6 <v-img class="white--text align-end" height="200px" v-bind:src="article.image" alt=""> 7 <v-card-title class="title">{{ article.title }}</v-card-title> 8 </v-img> 9 <v-card-subtitle class="pb-0">{{ article.date }}</v-card-subtitle> 10 <v-card-text class="text--primary"> 11 <div class="name">{{ article.name }}</div> 12 <div>{{ article.place1 }}</div> 13 <div>{{ article.place2 }}</div> 14 </v-card-text> 15 </v-card> 16 </v-col> 17 </v-row> 18 19 <My-component ref="dialog1"></My-component> 20 </v-app> 21</template> 22 23<script> 24 import My-component from "./my-component"; 25 import axios from 'axios'; 26 export default { 27 name: "ArticleCard", 28 methods: { 29 show1() { 30 this.$refs.dialog1.open(); 31 }, 32 components: { 33 My-component 34 }, 35 data() { 36 return { 37 articles: [], 38 } 39 }, 40 mounted() { 41 axios 42 .get("http://127.0.0.1:8000/api/articles/") 43 .then(response => (this.articles = response.data)) 44 } 45 } 46</script> 47 48<style scoped> 49 .card { 50 max-width: 400px; 51 max-height: 320px; 52 margin: 0 auto; 53 ovarflow-y: hidden; 54 } 55 56 .title { 57 margin-bottom: -15px; 58 } 59 60 .name { 61 margin-bottom: 5px; 62 } 63</style> 64
[{"id":1,"show":"show1","image":"img/image1.jpeg","title":"\u90fd\u96fb\u8352\u5ddd\u7dda\u5b66\u7fd2\u9662\u4e0b\u99c5\u8e0f\u5207","date":"2019\u5e7411\u67081\u65e5","name":"\u30a2\u30cb\u30e1:\u51b4\u3048\u306a\u3044\u5f7c\u5973\u306e\u80b2\u3066\u304b\u305fOP","place1":"\u90fd\u96fb\u8352\u5ddd\u7dda\u5b66\u7fd2\u9662\u4e0b\u99c5\u3092\u964d\u308a\u3066\u3059\u3050\u306e\u8e0f\u5207","place2":null}]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/11/26 06:35