首页 > 解决方案 > 如何在 laravel Blade 中动态打印 JavaScript 变量

问题描述

我正在使用 Pusher 构建通知,并且我将“路由”作为 JavaScript 变量接收到某个页面

现在我想将此变量作为指向在变量中确定的某个页面的链接注入到通知栏,我尝试制作 href 并使用 laravel url 方法将路由放入其中以从任何页面访问它。这是代码

channel.bind('App\\Events\\Councilcreated', function (data) {
    var a = document.createElement('a');
    a.setAttribute("href", "{{ url(".data.page.") }}");
});

问题是打印 (data.page) 作为字符串而不是 (data.page) 变量的值

标签: javascriptlaravel

解决方案


我建议您首先将您的 URL 存储到一个 javascript 变量中,然后将您的数据添加到其中,然后将其设置为您的 href。如下所示。

var url = "{{ url() }}";
a.setAttribute("href", url+'/'+data.page);

如果你像你说的那样得到 htmlspecialchars () 错误,然后像下面这样使用它

    var url = "{!! url() !!}";
a.setAttribute("href", url+'/'+data.page);

为什么你不从 php 端传递完整的 url 并直接在这里使用它,如下所示。

//php
$this->page = url($page);

//javascipt
a.setAttribute("href", data.page);

推荐阅读