質問編集履歴

2

問題解決

2017/08/20 16:42

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -347,3 +347,45 @@
347
347
 
348
348
 
349
349
  リストページで普通に使ってはいたものの、未だに混乱するポイントなので、有用そうなソースなど紹介して頂ければ幸いです。自己解決できるよう修正頑張ってみます。
350
+
351
+
352
+
353
+ ###表示できた!
354
+
355
+ Vue devtoolの構造を見ながら表示部分を下記のように指定したところ、無事指定要素を画面に表示することができました。
356
+
357
+ ```javascript
358
+
359
+ <template>
360
+
361
+ <div class="detail">
362
+
363
+ <div v-if="question != null">
364
+
365
+ <div>succeed</div>
366
+
367
+ <h2>問題本文</h2>
368
+
369
+ {{ question.data.Item.q_body }}
370
+
371
+ <h2>問題解説</h2>
372
+
373
+ {{ question.data.Item.q_desc }}
374
+
375
+ </div>
376
+
377
+
378
+
379
+ <div v-else>
380
+
381
+ <p>No Page.</p>
382
+
383
+ </div>
384
+
385
+ </div>
386
+
387
+ </template>
388
+
389
+ ```
390
+
391
+ {{question.data.Item.q_body}}という記述を短くする工夫などについては、どこかで見た記憶があるので、また継続的に修正を加えていきたいと思います。とりあえず、APIから各ページのデータを取得することができたので満足です。

1

詳細用APIの発火成功と、取得データ表示のための追加質問の追記

2017/08/20 16:42

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -211,3 +211,139 @@
211
211
  コードからもわかるとおり混乱中です。修正を続けていますが、具体的な修正案などがあればありがたいです。「リストから取得したq_idを、詳細情報取得用のAPIに組み込んで、その内容を表示する」ということがしたいです。
212
212
 
213
213
  よろしくお願いします。
214
+
215
+
216
+
217
+ ###詳細用APIの発火に成功!
218
+
219
+ aro10さんの指摘に沿って、コードを下記のように変更したところ、詳細用APIを無事動作させることができました。ローカルDynamodbのコンソールからもAPIの発火を確認し、Vue devtool側でもdataのquestionの中に詳細情報が格納されているのが確認できました。
220
+
221
+
222
+
223
+ ```javascript
224
+
225
+ <template>
226
+
227
+ <div class="detail">
228
+
229
+ <div v-if="question != null">
230
+
231
+ <div>succeed</div>
232
+
233
+ {{ question }}
234
+
235
+
236
+
237
+ </div>
238
+
239
+
240
+
241
+ <div v-else>
242
+
243
+ <p>No Page.</p>
244
+
245
+ </div>
246
+
247
+ </div>
248
+
249
+ </template>
250
+
251
+
252
+
253
+ <script>
254
+
255
+ import axios from 'axios';
256
+
257
+
258
+
259
+ export default {
260
+
261
+ name: 'detail',
262
+
263
+ data() {
264
+
265
+ return {
266
+
267
+ question: null
268
+
269
+ }
270
+
271
+ },
272
+
273
+ mounted() {
274
+
275
+ this.getQuestion(this.q_id).then(question => this.question = question);
276
+
277
+ },
278
+
279
+ beforeRouteUpdate(to, from ,next) {
280
+
281
+ this.getQuestion(to.params.q_id).then(question => this.question = question);
282
+
283
+ next();
284
+
285
+ },
286
+
287
+ methods: {
288
+
289
+ getQuestion(q_id) {
290
+
291
+ return axios.get(`http://localhost:3000/question/${this.$route.params.q_id}`, {})
292
+
293
+ }
294
+
295
+ }
296
+
297
+ }
298
+
299
+ </script>
300
+
301
+ ```
302
+
303
+
304
+
305
+ ###あと一歩!画面に各要素を表示させたい
306
+
307
+ ここまで質問して「いまさら?」と思われるかも知れませんが、詳細ページで取得したデータをどう画面に出力するかで少し悩んでいます。ちなみに詳細用のJSON構造は下記な感じです。
308
+
309
+
310
+
311
+ (questionDetail.json)
312
+
313
+ ```JSON
314
+
315
+ {
316
+
317
+ "q_id" : "2012q001",
318
+
319
+ "q_body" : "QUESTION_BODY",
320
+
321
+ "q_desc" : "QUESTION_DESCRIPTON",
322
+
323
+ "image_url" : "",
324
+
325
+ "image_alt" : ""
326
+
327
+ },
328
+
329
+ {
330
+
331
+ "q_id" : "2012q002",
332
+
333
+ "q_body" : "QUESTION_BODY",
334
+
335
+ "q_desc" : "QUESTION_DESCRIPTION",
336
+
337
+ "image_url" : "",
338
+
339
+ "image_alt" : ""
340
+
341
+ },
342
+
343
+ ```
344
+
345
+ questionにデータがあるから、q_bodyを表示するときは、{{question.q_body}}で良かったんだっけ?と入力するも表示されず。とりあえず{{question}}とだけ入力し、JSON文字列がそのまま画面に出力されたのを確認したところで「あとどうするんだっけ」と悩んでいる現在です。
346
+
347
+
348
+
349
+ リストページで普通に使ってはいたものの、未だに混乱するポイントなので、有用そうなソースなど紹介して頂ければ幸いです。自己解決できるよう修正頑張ってみます。