我有一个带有以下脚本的js文件
alert("{{ route('contacts.show',':contactid:') }}");
我使用.js文件并将其包含在我的刀片视图中
<script type="text/javascript" src={{ asset('admin/js/contact/test.js') }}></script>
但是如果我在刀片视图中编写脚本。它会评估大括号内的代码。
答案 0 :(得分:2)
PHP不处理JS文件,因此Laravel刀片模板在JS文件中不起作用。你应该做的是,通过将路由值注入JS变量,在JS 在PHP页面中定义变量中的路径。然后,您可以在JS文件中访问该变量。
<!DOCTYPE html>
<html>
<head>
<title>Page</title>
</head>
<body>
<script>
// Inject the PHP route value into a JS variable.
window.route = '<?php echo route("contacts.show",":contactid:"); ?>';
// You can also use 'let route = ...' to declare the variable.
</script>
<script src="./main.js"></script>
</body>
</html>
main.js:
alert(route);
答案 1 :(得分:1)
仅在刀片文件内部执行圆括号。如果你需要保持JS外部而不是将代码合并到刀片模板中,你可以在刀片中定义JS变量,在全局JS范围内,在它之后加载外部JS,然后在你的js中使用该变量。
刀片中的
<script>
var contactsRoute = ""{{ route('contacts.show',':contactid:') }}"";
</script>
<script type="text/javascript" src={{ asset('admin/js/contact/test.js') }}></script>
在外部js
alert(contactsRoute);