我公开了我的疑问/问题。我目前正在使用Laravel 5.5进行项目。该项目有许多使用JQuery到服务器URL的AJAX请求。
目前,在我看来,我在刀片文件末尾有JS代码。
说明性示例:users.blade.php
<h1>Usuarios</h1>
@foreach ($users as $user)
<p>{{ $user->name }} <span class="delete-user" data-user="{{ $user->id }}">Eliminar Usuario</span></p>
@endforeach
<script>
$(document).on('click', '.delete-user', function () {
$.ajax({
url: "{{ route('users.delete') }}",
type: "POST",
data: { id: $(this).data('user') },
dataType: "JSON",
success: function (response) {
// Hacer algo
},
error: function (jqXHR, timeout, message) {
// Hacer otra cosa
}
});
});
</script>
如上例所示,我有用户视图,然后单击具有delete-user类的元素,将对服务器进行AJAX调用。
这是大多数项目视图的工作方式。我不知道以这种方式处理它有多正确,但是那是我做到的方式,没有办法。
该项目主要使用ES6功能,但是该项目必须在某些不支持这些功能的浏览器的较旧版本中运行,所以我决定将BabelJS用于JS代码。
现在的问题是,每个视图或blade.php文件都具有JS代码,要使用BabelJS太费力,无法从每个视图中获取代码,并用BabelJS对其进行转换,然后将其粘贴到视图中。我知道这不是正确,最佳或推荐的方法。
我认为这种想法是将项目的所有JS移至public / js文件夹中的相应JS文件,并在该路径上使用BabelJS,但是碰巧从JS文件中我无法使用PHP变量或函数,例如:
route('users.delete')
用于AJAX请求路径。
我已经考虑过我的项目的页脚,用url和其他AJAX请求所需的值等定义JS常量。但是我不知道这是否是最佳选择。
在某些情况下,以及建议使用需要从PHP或以一般方式传递的变量或值的JS代码的情况下,您如何建议管理JS代码以使其与刀片视图分开,但我可以将其制作为AJAX请求到我的项目路径吗?