postsの要素の中にcategoryがメンズのものが1つでもあれば?
的な意味でしょうか
javascript
1 <div v-if="posts.filter(x=>x.category=='メンズ').length>0">
sample
メンズにタイトル1,2,4、レディースに3を表示するのはイメージがつくのですが
その他の項目はどうなればいいのでしょうか?
結果をHTMLに書き起こしてもらい、仕様説明をしてもらえると書きようもあるかと
javascript
1<script src="https://cdn.jsdelivr.net/npm/vue"></script>
2<div id="dynamic-component-demo">
3 <div v-if="posts.filter(x=>x.category=='メンズ').length>0">
4 <div class="posts-tab">
5 <ul class="posts-sidebar">
6 <li v-for="(post, index) in posts.filter(x=>x.category=='メンズ')" v-bind:key="post.id" v-on:click="selectedNumber = index">
7 {{ post.title }}
8 </li>
9 </ul>
10 <div class="selected-post-container">
11 <div class="selected-post">
12 <h3>{{ selectedPost.title }}</h3>
13 <div v-html="selectedPost.content"></div>
14 </div>
15 </div>
16 </div>
17 </div>
18 <div v-if="posts.filter(x=>x.category=='レディース').length>0">
19 <div class="posts-tab">
20 <ul class="posts-sidebar">
21 <li v-for="(post, index) in posts.filter(x=>x.category=='レディース')" v-bind:key="post.id" v-on:click="selectedNumber = index">
22 {{ post.title }}
23 </li>
24 </ul>
25 <div class="selected-post-container">
26 <div class="selected-post">
27 <h3>{{ selectedPost.title }}</h3>
28 <div v-html="selectedPost.content"></div>
29 </div>
30 </div>
31 </div>
32 </div>
33</div>
34<script>
35new Vue({
36 el: '#dynamic-component-demo',
37 data: {
38 posts: [{
39 id: 1,
40 title: 'タイトル1',
41 content: '<p>本文1</p>',
42 category: 'メンズ'
43 }, {
44 id: 2,
45 title: 'タイトル2',
46 content: '<p>本文2</p>',
47 category: 'メンズ'
48 }, {
49 id: 3,
50 title: 'タイトル3',
51 content: '<p>本文3</p>',
52 category: 'レディース'
53 }, {
54 id: 4,
55 title: 'タイトル4',
56 content: '<p>本文4</p>',
57 category: 'メンズ'
58 }],
59 selectedNumber: 0
60 },
61 computed: {
62 selectedPost() {
63 return this.posts[this.selectedNumber]
64 }
65 }
66});
67</script>
調整版
javascript
1<script src="https://cdn.jsdelivr.net/npm/vue"></script>
2<div id="dynamic-component-demo">
3 <div v-if="posts.filter(x=>x.category=='メンズ').length>0">
4 <div class="posts-tab">
5 <ul class="posts-sidebar">
6 <li v-for="(post, index) in posts.filter(x=>x.category=='メンズ')" v-bind:key="post.id" v-on:click="selectedNumber = post.id-1">
7 {{ post.title }}
8 </li>
9 </ul>
10 <div class="selected-post-container">
11 <div class="selected-post">
12 <h3>{{ selectedPost.title }}</h3>
13 <div v-html="selectedPost.content"></div>
14 </div>
15 </div>
16 </div>
17 </div>
18 <div v-if="posts.filter(x=>x.category=='レディース').length>0">
19 <div class="posts-tab">
20 <ul class="posts-sidebar">
21 <li v-for="(post, index) in posts.filter(x=>x.category=='レディース')" v-bind:key="post.id" v-on:click="selectedNumber = post.id-1">
22 {{ post.title }}
23 </li>
24 </ul>
25 <div class="selected-post-container">
26 <div class="selected-post">
27 <h3>{{ selectedPost.title }}</h3>
28 <div v-html="selectedPost.content"></div>
29 </div>
30 </div>
31 </div>
32 </div>
33</div>
34<script>
35new Vue({
36 el: '#dynamic-component-demo',
37 data: {
38 posts: [{
39 id: 1,
40 title: 'タイトル1',
41 content: '<p>本文1</p>',
42 category: 'メンズ'
43 }, {
44 id: 2,
45 title: 'タイトル2',
46 content: '<p>本文2</p>',
47 category: 'メンズ'
48 }, {
49 id: 3,
50 title: 'タイトル3',
51 content: '<p>本文3</p>',
52 category: 'レディース'
53 }, {
54 id: 4,
55 title: 'タイトル4',
56 content: '<p>本文4</p>',
57 category: 'メンズ'
58 }],
59 selectedNumber: 0
60 },
61 computed: {
62 selectedPost() {
63 return this.posts[this.selectedNumber]
64 }
65 }
66});
67</script>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/12 04:50
2019/12/12 07:14
2019/12/12 07:23
2019/12/12 09:39
2019/12/12 10:40