Laravel:使用 url 代替 javascript 中的路由
Laravel: use an url instead route in javascript
在 Laravel 5.4 中,我需要在 javascript 文件中使用 url 代替路由。
现在我有一个包含以下代码的 blade 文件:
@section('after-scripts')
{{ Html::script("https://cdn.datatables.net/v/bs/dt-1.10.15/datatables.min.js") }}
<script>
$(function () {
$('#users-table').DataTable({
processing: true,
serverSide: true,
ajax: {
url: '{{ route("admin.access.user.get") }}',
type: 'post',
data: {status: 1, trashed: false}
},
columns: [
{data: 'id', name: '{{config('access.users_table')}}.id'},
{data: 'first_name', name: '{{config('access.users_table')}}.first_name'}, ],
order: [[0, "asc"]],
searchDelay: 100
});
});
</script>
但我想去掉 blade 这个并将其保存为我的 js 资产中的普通 .js 文件。我应该如何处理 route()
和 config()
等 blade 助手?
您可以在导入脚本之前使用 config 和 route 的输出初始化 blade 文件中的 JavaScript 变量。
在 Blade 模板文件中
@section('after-scripts')
{{ Html::script("https://cdn.datatables.net/v/bs/dt-1.10.15/datatables.min.js") }}
<script>
var accessurl = '{{ route("admin.access.user.get") }}';
var config = '{{config('access.users_table')}}';
</script>
<script src="{{asset('path/to/jsfile.js')}}" type="text/javascript"></script>
@endsection
在JavaScript文件中
$(function () {
$('#users-table').DataTable({
processing: true,
serverSide: true,
ajax: {
url: accessurl,
type: 'post',
data: {status: 1, trashed: false}
},
columns: [
{data: 'id', name: config + '.id'},
{data: 'first_name', name: config +'.first_name'},],
order: [[0, "asc"]],
searchDelay: 100
});
});
在 Laravel 5.4 中,我需要在 javascript 文件中使用 url 代替路由。
现在我有一个包含以下代码的 blade 文件:
@section('after-scripts')
{{ Html::script("https://cdn.datatables.net/v/bs/dt-1.10.15/datatables.min.js") }}
<script>
$(function () {
$('#users-table').DataTable({
processing: true,
serverSide: true,
ajax: {
url: '{{ route("admin.access.user.get") }}',
type: 'post',
data: {status: 1, trashed: false}
},
columns: [
{data: 'id', name: '{{config('access.users_table')}}.id'},
{data: 'first_name', name: '{{config('access.users_table')}}.first_name'}, ],
order: [[0, "asc"]],
searchDelay: 100
});
});
</script>
但我想去掉 blade 这个并将其保存为我的 js 资产中的普通 .js 文件。我应该如何处理 route()
和 config()
等 blade 助手?
您可以在导入脚本之前使用 config 和 route 的输出初始化 blade 文件中的 JavaScript 变量。
在 Blade 模板文件中
@section('after-scripts')
{{ Html::script("https://cdn.datatables.net/v/bs/dt-1.10.15/datatables.min.js") }}
<script>
var accessurl = '{{ route("admin.access.user.get") }}';
var config = '{{config('access.users_table')}}';
</script>
<script src="{{asset('path/to/jsfile.js')}}" type="text/javascript"></script>
@endsection
在JavaScript文件中
$(function () {
$('#users-table').DataTable({
processing: true,
serverSide: true,
ajax: {
url: accessurl,
type: 'post',
data: {status: 1, trashed: false}
},
columns: [
{data: 'id', name: config + '.id'},
{data: 'first_name', name: config +'.first_name'},],
order: [[0, "asc"]],
searchDelay: 100
});
});