将js移动到单独的文件并在html中包含文件会停止返回一些数据

时间:2015-07-29 15:19:16

标签: javascript jquery laravel

我有一个视图,我正在返回我在控制器中创建的一些数据,让我们说一个db行数组。如果我把js创建在html中使用那些数据的盒子一切都很好。如果我将它分隔为public / js并包含相同的完整脚本,则不再返回这些数据。是因为从外部调用文件并不授予我传递给视图的数组的访问权限吗?如果是这样我怎么解决这个问题? 感谢

1 个答案:

答案 0 :(得分:0)

继续评论后,RE:用javascript处理刀片字符串。

有两个选项,一个是将它们添加到某些脚本标记中当前刀片文件的末尾,然后从那里添加它们。 E.g。

... normal blade view stuff

   <script type="text/javascript">
       var size = {{ number_format($size->it,1) }};
   </script>
</body>

另一个选项是在您的views目录中使用扩展名script.js.blade.php创建一个文件,以便刀片将其呈现,然后在该文件中您可以@include('your-actual-script.js')然后由刀片解析它。唯一的问题是假文件会有错误的响应标题,因此您必须在控制器中强制它们,例如

$contents = View::make('script.js')->with('size', $size);
$response = Response::make($contents, 200);
$response->header('Content-Type', 'application/javascript');
return $response;

希望有所帮助!

相关问题