【问题标题】:How to do string concatenation with Javascript in Laravel view?如何在 Laravel 视图中使用 Javascript 进行字符串连接?
【发布时间】:2018-10-25 00:16:05
【问题描述】:

我有 data.data[key].thumbdata.data[key].image 作为变量,这是在 Laravel Blade 模板中的 <script> 标签内。

此行有错误,导致:

使用未定义的常量上传 - 假定为“上传”

代码是:

user_status += '<img src="{{asset(uploads/' + data[key].image + '.' + 
                data[key].thumb + ')}}" class="img-responsive" 
                style="height:290px;" alt="360-video-feature" /></div>';

user_status += '<img class="OverlayIcon" src=" 
                {{asset('uploads/video_icon_overlay.png')}}" alt="" />';

【问题讨论】:

  • 我觉得你的 user_status 应该是这样的:user_status += '&lt;img class="OverlayIcon" src=" {{asset(\'uploads/video_icon_overlay.png\')}}" alt="" /&gt;'; 现在我不确定中间的简单引号是否真的被理解为字符串的一部分,而不仅仅是两者都停止和开始标记。
  • 我不认为第二个是问题,因为如果我删除第一个错误就消失了
  • 当时不知道,就是觉得很奇怪
  • 也许您在上传之前缺少单引号?应该是'uploads/' + data[key].image
  • 引用只是问题的一部分。看来您正在混合 JS 和 PHP 变量,这不可能按照您的方式进行。这个:{{ asset(uploads/' + data[key].image + '.' + data[key].thumb + ') }} 即使你修正了引号也不起作用。这是因为data var 只有在您的 Blade 模板编译并显示在浏览器上之后才可用。

标签: javascript php laravel blade


【解决方案1】:

你不能像这样混合 PHP 和 JavaScript。渲染视图时在服务器上执行 PHP 代码,在客户端执行 JavaScript。即使有可能,您的语法仍然不正确。

user_status += '&lt;img src="{{asset(uploads/' + data[key].image 您在uploads/ 之前缺少引用。应该是"uploads

你可以做的是:

user_status += '<img src="' +
               '{{asset("uploads/")}}' + data[key].image + '.' + data[key].thumb + '"' +
               ' class="img-responsive" style="height:290px;" alt="360-video-feature" /></div>';

这样,'{{asset("uploads/")}}' 将被替换为上传文件夹的 URL 字符串,而 URL 的其余部分将通过 JavaScript 附加。这是浏览器看到的方式:

user_status += '<img src="' +
               'http://www.example.com/uploads/' + data[key].image + '.' + data[key].thumb + '"' +
               ' class="img-responsive" style="height:290px;" alt="360-video-feature" /></div>';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-02
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多