hoge

いわゆるWeb Developerの備忘録

Vue Routerにcheckboxの値を渡して遷移する

Vue の v-model を使ってチェックボックスの入力を受け取り、Vue Router で遷移しようとしたらうまく行かなかったので解決方法のメモとして残します。

通常画面遷移を行う form で複数のチェックボックスのデータを画面遷移時にわたすにはvalue="items[]"のように[]`を書き加える必要があります。

Vue では Ajax を使うため、javascript の変数に値を格納する必要がありますが、その時単純に items という変数を用意して、v-model="itemsとし、Vue Router のクエリにその値を渡すと正しいクエリ文字列になりません。

v-model に items[]という形で渡すことができれば正しいクエリが生成されますが、[]が配列の指定として扱われてしまうためエラーになります。

解決方法としては Vue の data オブジェクトへの宣言で以下のようにします。

data() {
  return {
    query: {
      "items[]": []
    }
  }
}

v-model にバインドするときに配列に key 指定で呼び出しを行うために query オブジェクトを使ってラップします。

こうすることで v-model="query['items[]']"という呼び出しが行えるようになり、[]を文字列に含んでいるため Vue Router で遷移するときに正しいクエリ文字列が生成されます。


同じカテゴリー(Tech)の記事
上の画像に書かれている文字を入力して下さい
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
Vue Routerにcheckboxの値を渡して遷移する
    コメント(0)