teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2017/10/23 04:25

投稿

karamarimo
karamarimo

スコア2555

answer CHANGED
@@ -25,9 +25,12 @@
25
25
  とりあえず ver 2 に`v-repeat`は存在しません。
26
26
 
27
27
  代わりに、Rangeによる`v-for`を使えばいいと思います。
28
- https://vuejs.org/v2/guide/list.html#v-for-with-a-Range
29
28
 
29
+ [v-for with a Range](https://vuejs.org/v2/guide/list.html#v-for-with-a-Range)
30
+
30
31
  今の場合こうするといいと思います。
31
32
  ```lang-js
32
33
  <li v-for="index in pageCount" v-on:click="showPage(index)" class="{{page == index ? 'active': ''}}"><a>{{index + 1}}</a></li>
33
- ````
34
+ ````
35
+
36
+ この場合、`index`は`data`で宣言する必要はありません(というかしないほうがいいです)。

1

コメントに対する追記

2017/10/23 04:24

投稿

karamarimo
karamarimo

スコア2555

answer CHANGED
@@ -10,4 +10,24 @@
10
10
  data: dipsItems
11
11
  Raw expression: v-repeat="data: dipsItems"
12
12
 
13
- angularじゃないので`v-repeat="data: dipsItems"`ではなく`v-for="data in dipsItems"`です。
13
+ angularじゃないので`v-repeat="data: dipsItems"`ではなく`v-for="data in dipsItems"`です。
14
+
15
+ ###追記
16
+
17
+ > また、v-repeatが使用できない場合、v-forでどのように代替するのでしょうか。
18
+
19
+ ```lang-js
20
+ <li v-on:click="showPage($index)" class="{{page == $index ? 'active': ''}}" v-repeat="pageCount"><a>{{$index + 1}}</a></li>
21
+ ````
22
+ ここのことをおっしゃっているんだと思いますが、
23
+
24
+ `v-repeat`というのは vue には存在しません...と思ったらver 0.*にはあったんですね。`$index`も使えたようです。
25
+ とりあえず ver 2 に`v-repeat`は存在しません。
26
+
27
+ 代わりに、Rangeによる`v-for`を使えばいいと思います。
28
+ https://vuejs.org/v2/guide/list.html#v-for-with-a-Range
29
+
30
+ 今の場合こうするといいと思います。
31
+ ```lang-js
32
+ <li v-for="index in pageCount" v-on:click="showPage(index)" class="{{page == index ? 'active': ''}}"><a>{{index + 1}}</a></li>
33
+ ````