質問編集履歴

3

2019/07/01 18:31

投稿

take-t.t.
take-t.t.

スコア360

test CHANGED
@@ -1 +1 @@
1
- vue-cliにて、「v-for」でレンダリングした要素の中の「v-on」で指定したメッドを動的に変更したい
1
+ vue-cliにて、「v-for」でレンダリングした要素の中の「v-on」で指定したメッドを動的に変更したい
test CHANGED
File without changes

2

情報を追記

2019/07/01 18:31

投稿

take-t.t.
take-t.t.

スコア360

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,8 @@
1
1
  やりたい事はタイトル通りで、以下のコード(.vueファイル内の不要な部分を削ってhtmlとJavaScritpで分けて記述しています)でv-forで取得したindexの数字を使って「show0~7」というmethodを呼び出そうとしています。
2
2
 
3
3
  ただこの方法では動きませんでした。
4
+
5
+ ちなみに「show」はモーダルを呼び出す関数で、それに[vue-js-modal](https://github.com/euvl/vue-js-modal)というライブラリを使用しています。
4
6
 
5
7
 
6
8
 
@@ -32,7 +34,27 @@
32
34
 
33
35
  </div>
34
36
 
37
+
38
+
39
+ <modal name="html" :width="400" :height="400"> <!-- このnameの部分を使ってshowで呼び出しています -->
40
+
41
+ <div class="modal-wrapper1">
42
+
43
+ <div class="bg-wrapper">
44
+
45
+ <h2>HTML</h2>
46
+
47
+ <p>text</p>
48
+
35
- </div>
49
+ </div>
50
+
51
+ </div>
52
+
53
+ </modal> <!--このようなモーダルが後7つ続きます-->
54
+
55
+
56
+
57
+ </div><!-- skills-box -->
36
58
 
37
59
  <router-link to="/"><i class="fas fa-angle-left"></i> BACK</router-link>
38
60
 
@@ -42,18 +64,42 @@
42
64
 
43
65
  ```JavaScript
44
66
 
45
- data() {
67
+ data() {
46
68
 
47
- return {
69
+ return {
48
70
 
49
- skills: [
71
+ skills: [
50
72
 
51
- 'HTML', 'CSS', 'JavaScript', 'Vue.js', 'Sass', 'Firebase', 'Git・Github', 'webpack'
73
+ 'HTML', 'CSS', 'JavaScript', 'Vue.js', 'Sass', 'Firebase', 'Git・Github', 'webpack'
52
74
 
53
- ]
75
+ ]
54
-
55
- }
56
76
 
57
77
  }
58
78
 
79
+ },
80
+
81
+ methods: {
82
+
83
+ show0: function() {
84
+
85
+ this.$modal.show('html'); //'html'の部分がモーダルのnameです。
86
+
87
+ },
88
+
89
+ show1: function () {
90
+
91
+ this.$modal.show('css');
92
+
93
+ },
94
+
95
+ show2: function () {
96
+
97
+ this.$modal.show('javascript');
98
+
99
+ },
100
+
101
+ //show...と7まで続きます
102
+
103
+ },
104
+
59
105
  ```

1

コードの修正

2019/07/01 14:47

投稿

take-t.t.
take-t.t.

スコア360

test CHANGED
File without changes
test CHANGED
@@ -2,9 +2,13 @@
2
2
 
3
3
  ただこの方法では動きませんでした。
4
4
 
5
+
6
+
7
+
8
+
5
9
  他にもいくつか試したのですが、v-onの中に変数を使う方法はどれも駄目でした。
6
10
 
7
- 公式のリファレンス読んでもこのような使い方は載っておらず、手詰まりになっております。
11
+ 公式のリファレンス読んでもこのような使い方は載っておらず、手詰まりになってっています。
8
12
 
9
13
 
10
14
 
@@ -20,11 +24,11 @@
20
24
 
21
25
  <div class="skills" v-for="(skill, index) in skills">
22
26
 
23
- <img v-bind:src="require(`../assets/images/${skill}.png`)"> <!-- 動かない部分です -->
27
+ <img v-bind:src="require(`../assets/images/${skill}.png`)">
24
28
 
25
29
  <h2>{{ skill }}</h2>
26
30
 
27
- <a class="open-details" v-on:click=`show${index}`>Details <i class="fas fa-angle-right"></i></a>
31
+ <a class="open-details" v-on:click=`show${index}`>Details <i class="fas fa-angle-right"></i></a> <!-- 動かない部分です -->
28
32
 
29
33
  </div>
30
34