首页 > 解决方案 > JS文件无法访问laravel变量

问题描述

我正在从我的控制器传递一个数组。

现在,我将这段代码放在我的 Laravel 6.* Blade View 中,

<script>
    var app = <?php echo json_encode($array); ?>;
</script>

这工作得很好。

但是,如果我将同一行(或以下任何行)放在我的自定义 app.js 文件中,这将不起作用。

var app = <?php echo json_encode($array); ?>;

var app = {!! json_encode($array->toArray()) !!};

var app = '<?php echo json_encode($array); ?>';

每次我收到无效的语法错误。

我不确定这是否是 StackOverflow 的有效问题,但我已经尝试了所有其他类似的解决方案,但没有一个对我有用。

标签: javascriptphpjquerylaravel

解决方案


那是因为您无权在 js 文件中编写 php 代码,或者您可以使用它Ajax来获取 php 变量。

在您的声明中,如果您在包含文件之前将代码放入刀片文件中,app.js您将能够app在 js 文件中获取变量。前任:

<script>
var app = @json($array)
</script>
<script src="path to your app js file"></script>

现在在您的应用程序 js 文件中,如果您打印变量,您将在 app.js 文件中app看到结果 console.log(app);


推荐阅读