2017-07-26 17 views
1

在Laravel 5.4中,我需要在JavaScript文件中使用url代替路由。Laravel:在javascript中使用url代替路由

現在我有這個代碼片文件:

@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> 

但我想脫下這片並將其保存爲我的js資產正常.js文件。我應該怎樣處理刀片助手,如route()config()

+1

一個簡單的方法是將輸出一個全球_(命名空間)_網頁上的物體['的JavaScript ::放(。 ..)'](https://github.com/laracasts/PHP-Vars-To-Js-Transformer) –

回答

0

您可以在導入腳本之前使用config和route的輸出初始化刀片文件中的JavaScript變量。

刀片模板文件

@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> 

在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 
    }); 
}); 
+0

嗯,我明白了,沒錯。我會嘗試。謝謝。 – pmirnd