回答編集履歴

3

修正後のソースコードを追記。

2021/05/31 15:54

投稿

hallen0225
hallen0225

スコア587

test CHANGED
@@ -13,3 +13,97 @@
13
13
  ということが起こってしまっています。
14
14
 
15
15
  JSONから得られた結果全件を格納する変数と、検索結果を格納する変数を別に用意しましょう。
16
+
17
+
18
+
19
+ 追記:上記の方法で修正するとしたらこのようになります。
20
+
21
+ もう1つの方法としては、「検索ボタンを押すたびにファイルをaxiosで取得する」ということがありますが、ファイルの内容が頻繁に変更される場合でなければ、通信量が増えてしまうのであまりお勧めできません。
22
+
23
+
24
+
25
+ ``` Javascript
26
+
27
+ var json_path = "./json/samp.json"; //jsonのパス
28
+
29
+
30
+
31
+ var app = new Vue({
32
+
33
+ el: "#app",
34
+
35
+ data: {
36
+
37
+ kws: [], //json格納先
38
+
39
+ filteredKws: [], //検索結果
40
+
41
+ searchkw: "", //検索ボックスのテキスト
42
+
43
+ },
44
+
45
+ //jsonファイル読み込み
46
+
47
+ created: function () {
48
+
49
+ axios
50
+
51
+ .get(json_path)
52
+
53
+ .then((response) => {
54
+
55
+ this.kws = response.data;
56
+
57
+ })
58
+
59
+ .catch((err) => {
60
+
61
+ console.error(err);
62
+
63
+ });
64
+
65
+ },
66
+
67
+ computed: {
68
+
69
+ getList: function () {
70
+
71
+ return this.filteredKws;
72
+
73
+ },
74
+
75
+ },
76
+
77
+ methods: {
78
+
79
+ //検索実行
80
+
81
+ isSearch: function () {
82
+
83
+ var data = this.kws; //検索データ全件
84
+
85
+ var skw = this.searchkw.trim(); //検索ワード,前後の空白を削除
86
+
87
+
88
+
89
+ if ((this.searchkw != "") | (this.searchkw != null)) {
90
+
91
+ this.filteredKws = data.filter((kw) => {
92
+
93
+ return kw.seachText.toLowerCase().includes(skw.toLowerCase());
94
+
95
+ });
96
+
97
+ } else {
98
+
99
+ return data;
100
+
101
+ }
102
+
103
+ },
104
+
105
+ },
106
+
107
+ });
108
+
109
+ ```

2

語彙の修正

2021/05/31 15:54

投稿

hallen0225
hallen0225

スコア587

test CHANGED
@@ -1,4 +1,4 @@
1
- 検索ボタンで絞込みを行った際に、filterした後のリストをkwsに代入してしまっているためです。
1
+ 検索ボタンで絞込みを行った際に、絞り込んだ後のリストをkwsに代入してしまっているためです。
2
2
 
3
3
 
4
4
 

1

対応方法について追記

2021/05/31 15:43

投稿

hallen0225
hallen0225

スコア587

test CHANGED
@@ -11,3 +11,5 @@
11
11
 
12
12
 
13
13
  ということが起こってしまっています。
14
+
15
+ JSONから得られた結果全件を格納する変数と、検索結果を格納する変数を別に用意しましょう。