twtjudy1128
@twtjudy1128 (Juri Tawata)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

URLの中に変数を代入する方法を教えてください【Vue.js】

解決したいこと

Vue.jsでWebアプリを作っています。
YoutubePlayerを埋め込んでいて、最新のvideoIdを引っ張ってきて再生したいのですが、
URLにどうすれば変数を代入できるのかというところで詰まってしまいました。
解決方法を教えて下さい。

https://www.youtube.com/embed/(videoID)

▲具体的には、youtubeのURLがこのような構成になっているので
ここの(videoID)の部分に自作のWebAPIからvideoIDを引っ張ってきたいということです。

発生している問題・エラー

Image from Gyazo

該当するソースコード

        <div style="text-align: center;">    
            <iframe 
             width="240" height="180" 
             v-bind:src="video"
             frameborder="0" allow="accelerometer; autoplay; 
             encrypted-media; gyroscope; picture-in-picture" 
             allowfullscreen></iframe>
        </div>
      </div>
    </div>
    <script> 
        const app = new Vue({
          el: '#app',
          data: {
              video:''
          },
          mounted:function() {
            axios
            .get('自作したWebAPIのURL')
            .then(response => console.log(response.data))
            //.catch(response => console.log(response))
             this.video="https://www.youtube.com/embed/"+response.data
          },  

        })
    </script>

自分で試したこと

APIには問題はありません。
最初、consoleに引っ張ってきたvideoIdすら出てこなかったのですが、
このコードにたどり着いてから、consoleには出てくるようにはなりました。

html部分を{{response.data}}にしてみたら、もっとエラーが出たので
一番エラーが出てないこのコードに戻ってきた流れです・・・。

よろしくお願いします。

0

1Answer

横やりすいません。

Vue.jsは触ったことないのですが、@kkent030315さんの回答にあるスコープ範囲とコードの.thenでのチェインをみる感じ、スコープもそうですが非同期処理への理解も強化していたほうがよさそうだなと思いました◎
惜しいんですが、溝は少し深いかなと思いました。私も初めのころは理解すべき箇所がわからずによく同じことで躓いていたので、、、余計な老婆心がうずいてしまいました。

ネトストしていたらちょっと気になってしまったのでコメントしました。

1Like

Comments

  1. @twtjudy1128

    Questioner

    @mikiotec さん!コメントありがとうございます!とても嬉しいです!

    惜しいんですが、溝は少し深い・・・

    すごく刺さりました!わずかなことだけど、理解してるかしてないかで大きく変わるポイントですよね。

    まだ完全に理解できていないので、アドバイス参考にさせていただきます♪

    私のコード色々ぐちゃぐちゃなので(笑)
    また気になったらいつでもコメントいただけると嬉しいです!

    ありがとうございました!

Your answer might help someone💌