javascript - 我如何在 Blade 花括号中使用 javascript 变量

标签 javascript arrays laravel laravel-blade

我有一个视频播放器站点,我有一个“下一步”按钮,它应该停止视频,将 src 更改为指向下一个视频并使用 javascript 播放它,但我无法绕过使用 javascript 循环来更改 src。

这是我的 Blade 文件

@extends('layouts.app')
@section('content')
<section class="player">
  <center>
    <video id="myvideo" class="playing-video" src="{{url('songs/'.$songs[0]->filename)}}" controls autoplay onended="nextVideo()">
    </video>
    <br>
    <button id="next" style="background-color: transparent;border: none;color: white;" onclick="nextVideo()" type="button">
    <h2><i class="fas fa-chevron-right"></i>Next</h2></button>
  </center>
</section>

这是不工作的 javascript

var i = 0;
var myVideo = document.getElementById("myvideo");

function nextVideo() {
  i++;
  myVideo.setAttribute("src", "http://localhost/Laravel/anime/public/songs/" + {{ $songs[i] -> filename }});
  myVideo.load();
  myVideo.play();
}

我知道我不能直接在 Blade 花括号内使用 javascript 变量,但我没有主意!

最佳答案

将 Laravel 集合存储为按钮上的数据点:

<button id="next" data-songs="{{json_encode($songs)}}" ... etc />

然后在 nextVideo() JS 方法中拉出 JS 对象并在其上循环(所有 JS):

function nextVideo() {
    var songs = JSON.parse( //get the data from the #next button )
    //loop using the JS songs object instead of the blade {{}}
}

关于javascript - 我如何在 Blade 花括号中使用 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56880446/

相关文章:

javascript - react redux项目报错如何解决?

javascript - 重新排列数组的索引以匹配其他数组

mysql - 如何在 Laravel 中显示使用同一数据库表中两个不同值的图表?

javascript - 动态添加 css 类会在之后立即产生不希望的结果

JavaScript 闭包和变量作用域

javascript - 如何遍历javascript对象以找到多个相似的键

php - get请求时是否有必要在laravel Controller 中使用htmlspecialchars

php - 如何处理 Laravel 的 SMTP 驱动程序中的自签名 TLS 证书?

javascript - 如何向 d3 条形图添加工具提示?

javascript - 创建重复的js数组