前提・実現したいこと
Nuxt内の環境で以下の動作の実現ができず困っています。
実現したいことは、vue内でボタンをクリックした際にjsonから帰ってきた配列内のエラーコード(string)を判定して、vueのデータの更新を行おうとしています。
なお、本来はvue側からparameterの送信やAPIとの連携を行いますが、ここではサンプルとしてjsonを用いてエラーコードの判定だけ質問させていただきます。
現在行っていることは、vueでaxiosを用いて非同期で配列を取得し、配列の中身と名前が等しいvue内のdataをfalseからtrueに変更してv-ifでエラーメッセージを表示しようとしています。
以下にサンプルのコードを記載させていただきますが、methodsのvalidateForm
内でどのように書けばよいか分からず、困っています。
どなたかよい方法がありましたら、アドバイスいただけますでしょうか。
該当のソースコード
vue
1<template> 2 <section class="sample"> 3 <div class="error-wrapper" v-if="hasSystemError"> 4 <p class="error-title">エラーサンプル</p> 5 <div class="error-inner-wrapper"> 6 <p class="error-text" v-if="errors.ERROR_1">エラー1</p> 7 <p class="error-text" v-if="errors.ERROR_2">エラー2</p> 8 <p class="error-text" v-if="errors.ERROR_3">エラー3</p> 9 <p class="error-text" v-if="errors.ERROR_4">エラー4</p> 10 <p class="error-text" v-if="errors.ERROR_5">エラー5</p> 11 </div> 12 </div> 13 <button type="button" @click="validateForm"> 14 </section> 15</template> 16 17<script> 18export default { 19 name: 'sample', 20 data() { 21 return { 22 hasSystemError: false, 23 errors: { 24 ERROR_1: false, 25 ERROR_2: true, 26 ERROR_3: false, 27 ERROR_4: false, 28 ERROR_5: false 29 }, 30 } 31 } 32 methods: { 33 validateForm() { 34 let url 35 switch (this.$router.currentRoute.query.response) { 36 default: 37 url = '/data-sample/sample/index-response.json' 38 } 39 40 this.$axios.get(url).then(response => { 41 console.log(response.data.errors) // ["ERROR_1","ERROR_3","ERROR_4"] 42 // ここで取得したエラーコードを判定して、同じthis.data.errors以下のフラグをtrueにしたいです。 43 // この場合、this.errors.ERROR_1 / 3 / 4だけtrueに変更し、エラーメッセージを表示したいです。 44 }) 45 } 46 } 47} 48</script> 49 50<style scoped> 51</style> 52
以下が取得する配列を記述したjsonファイルです。
json
1{ 2 "errors": [ 3 "ERROR_1", 4 "ERROR_3", 5 "ERROR_4" 6 ] 7} 8
補足情報(FW/ツールのバージョンなど)
Nuxtとaxiosのバージョンは以下です。
"@nuxtjs/axios": "^5.3.6", "nuxt": "^2.4.0",
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/07 09:42
2019/03/07 09:46