質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

2078閲覧

router-linkのparamsを動的に変化させる方法

supermaruetsu

総合スコア148

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/10/13 11:04

router-linkを利用し、2つのタグをGET送信しようと考えております。
下記のコードの「tag.tag_id」に2つまでタグを許可する予定です。

しかし、これは最初のレンダリングの際にtag.tag_idがないため、エラーとなります。
そこれtag.tag_id1、tag.tag_id2の初期値をnullとして、v-modelのようなものを利用して動的にセットできればと考えているのですが、これは可能なのでしょうか。

どなたかご教示ください。よろしくお願い致します。

javascript

1<router-link 2 tag="button" 3 class="btn__tag_search" 4 :to="{ name: 'searchData', params: { tag.tag_id1: tag.tag_id1, tag.tag_id2: tag.tag_id2 } }"> 5 <i class="fa fa-search fa-fw"></i> 6</router-link>

javascript

1 data: function() { 2 return { 3 tag: null, 4 error: {}, 5 }

javascript

1 2const router = new VueRouter({ 3 mode: 'history', 4 routes: [ 5 { path: '/user/search/:tag_id1/:tag_id2', component: List, name: 'searchData', meta: { mode: 'search' }},

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

js

1data { 2 tag: { tag_id1: -1, tag_id2: -1 } 3}

tag のキーが決まっているなら null ではなくデフォルト値のオブジェクトにしておき後から変えるか

html

1<router-link v-if="tag" ...>

v-if で値が入るまで展開しないようにするといいです。

投稿2017/10/13 12:30

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

supermaruetsu

2017/10/13 16:36

v-ifでの制御で解決できました。ありがとうございました!!
guest

0

そこれtag.tag_id1、tag.tag_id2の初期値をnullとして、v-modelのようなものを利用して動的にセットできればと考えているのですが

router-linkでsearchDataに飛ぶときにどうやって/user/search/:tag_id1/:tag_id2のパラメーター:tag_id1:tag_id2をセットするか、ということでしょうか。

lang

1<router-link 2 ... 3 :to="{ name: 'searchData', params: { tag.tag_id1: tag.tag_id1, tag.tag_id2: tag.tag_id2 } }>

すでにそれらしきものを書いていらっしゃいますが、これだとjsの文法的にまずいです。オブジェクトリテラルでキーに.は使えません。使うとすればキーをクォーテーションで囲む必要があります。しかし今tag.はいりません。なぜならpath: '/user/search/:tag_id1/:tag_id2'tag.は含まれて居ないからです。

修正後

lang

1<router-link 2 ... 3 :to="{ name: 'searchData', params: { tag_id1: tag.tag_id1, tag_id2: tag.tag_id2 } }>

Demo

投稿2017/10/13 12:18

編集2017/10/13 12:23
karamarimo

総合スコア2551

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問