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

質問編集履歴

2

質問への追加

2021/06/01 10:46

投稿

zigutabi
zigutabi

スコア57

title CHANGED
File without changes
body CHANGED
@@ -118,4 +118,24 @@
118
118
  |3|Tokyo|
119
119
  |4|Nagoya|
120
120
 
121
- 改めて、「更新」ボタンのテキストを「登録」に変更するにはどうしたらいいでしょうか?
121
+ 改めて、「更新」ボタンのテキストを「登録」に変更するにはどうしたらいいでしょうか?
122
+
123
+
124
+ ご質問にありました、ログの結果は以下の通りです。
125
+ (5) [Array(2), Array(2), Array(2), Array(2), "0", __ob__: Observer]
126
+ 0: Array(2)
127
+ 0: 1
128
+ 1: "Sapporo"
129
+ length: 2
130
+ __ob__: Observer {value: Array(2), dep: Dep, vmCount: 0}
131
+ __proto__: Array
132
+ 1: (2) [2, "Nagoya", __ob__: Observer]
133
+ 2: (2) [3, "Mito", __ob__: Observer]
134
+ 3: (2) [4, "Tokyo", __ob__: Observer]
135
+ 4: "0"
136
+ length: 5
137
+ __ob__: Observer {value: Array(5), dep: Dep, vmCount: 0}
138
+ __proto__: Array
139
+
140
+ 新規追加されたのは、「4:"0"」になります。
141
+ ブラウザのコンソールから出力しているので、余計な要素が付いておりますが、ご容赦ください。

1

修正依頼に基づいて、これを修正

2021/06/01 10:46

投稿

zigutabi
zigutabi

スコア57

title CHANGED
File without changes
body CHANGED
@@ -5,9 +5,13 @@
5
5
  pushメソッドを使用することで行を追加することができたのですが、上記テーブル要素をそのまま複製したような行が追加され、Buttonの中身を変更することができませんでした。
6
6
  公式リファレンスを読んだのですが、pushメソッドに何を入れるのかが書いてなかったので、理解しかねている状態です。
7
7
  左が追加ボタンを押す前、右が追加ボタンを押した後になります。
8
- ![イメージ説明](71f8c65d952d85dcd1e19a0dc17fb14a.jpeg)
8
+ ![イメージ説明](37182901c07054808be98220cab2d666.jpeg)
9
9
 
10
+ その際、追加された行のボタンのテキストが「更新」と表示されます。
11
+ 自分が使用するのなら問題ないのですが、このツールは他者が使用することを前提としているので、
12
+ 更新のままですと誤解の原因になりかねないので、「登録」と変更したいです。
10
13
 
14
+
11
15
  以下が実際のコードになります。
12
16
  Javascriptの方はバッググランドで動いているgsファイルになります。
13
17
  ```js
@@ -16,6 +20,7 @@
16
20
  return html.evaluate();
17
21
  }
18
22
 
23
+ // スプレットシートに登録しているデータをWEB上に表示
19
24
  const importRecords = () => {
20
25
  const sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
21
26
  const values = sh.getRange(1, 1, sh.getLastRow(), sh.getLastColumn()).getValues();
@@ -24,6 +29,7 @@
24
29
  return values;
25
30
  }
26
31
 
32
+ // WEB上から入力された情報をスプレットシートに反映
27
33
  const updateRecords = (id, text) => {
28
34
  const sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
29
35
  const values = sh.getRange(1, 1, sh.getLastRow(), sh.getLastColumn()).getValues();
@@ -32,6 +38,7 @@
32
38
  const idx = idxes.indexOf(Number(id));
33
39
  sh.getRange(idx + 1, 2).setValue(text);
34
40
 
41
+ // 他ユーザーが変更した内容を反映するのに、再描画を実施
35
42
  return importRecords();
36
43
  }
37
44
  ```
@@ -56,6 +63,7 @@
56
63
  </tr>
57
64
  <tr v-for="(row, index) in rows" :key="index">
58
65
  <td>
66
+ <!-- スプレッドシートの第一列をプライマリーキーと設定し、それを非表示にしている -->
59
67
  <input v-model='rows[index][0]' type="hidden" />
60
68
  <input v-model='rows[index][1]' />
61
69
  </td>
@@ -93,7 +101,7 @@
93
101
  vm.message = "Error";
94
102
  }).updateRecords(inputData[0].value, inputData[1].value);
95
103
  },"append": async function(){
96
- vm.rows.push("0");
104
+ vm.rows.push("0"); // ここの処理がよくわからない
97
105
  }
98
106
  }
99
107
  });
@@ -110,4 +118,4 @@
110
118
  |3|Tokyo|
111
119
  |4|Nagoya|
112
120
 
113
- 改めて、「更新」ボタンのテキストを「追加」に変更するにはどうしたらいいでしょうか?
121
+ 改めて、「更新」ボタンのテキストを「登録」に変更するにはどうしたらいいでしょうか?