2015-12-29 56 views
0

以下JavaScript在邊工作完美test.blad.php文件 但是當我做了外部test.js在瀏覽器文件我得到一些東西一樣Laravel 5外部JavaScript Files_的JavaScript棧

http://localhost:8000/%7B%7Burl('/barcode')%7D%7D?j_barcode=112234 

而不是

http://localhost:8000/barcode?j_barcode=112234 

在test.js文件中的代碼是:

$(document).ready(function(){ 
$('#barcode').keyup(function(event){ 
    if(event.keyCode == 13){    
      var j_barcode = $('#barcode').val();  
    $.get("{{url('/barcode')}}", {j_barcode:j_barcode}, function(data) { 
     console.log(data) ; 
     //success data            
     $.each(data,function(i, obj){  
      document.getElementById("item").value =obj.itemName; 
      document.getElementById("itemId").value = obj.id; 

      console.log(data) ; 
     }); 
     }); 

     } 
    }); 

}); 

和route.php

Route::get('/barcode' , '[email protected]'); 

最後我decleared在test.blade.php的test.js作爲

<script type="text/javascript" src="/hsm/js/test.js" ></script> 
+0

爲什麼'「{{url('/ barcode')}}」'而不是'「/ barcode」'? – andlrc

+0

使用laravel? ? –

+0

是使用Laravel –

回答

1

不能使用刀片或PHP代碼在其內部沒有被解釋文件PHP。

最簡單的方法,正如@ dev-null所暗示的那樣,是對這個url進行硬編碼。但是當你在像「/ articles/2015」這樣的子頁面時會產生問題,因爲它會嘗試調用「/ articles/barcode」。

你必須找到一種方法將站點根url傳遞給你的js文件。 我總是解決這個問題的方法是在我的主模板中定義一個全局變量,其中包含js中所需的所有php解釋值。

var App = { 
    root: '{{ url('/barcode') }}', 
    texts: { 
      // some translated texts for js 
    } 
}; 

這樣,你可以很容易地訪問它在你的所有js文件:

$.get(App.root + '/barcode')... 

注:如果您使用命名和我一樣的路線,你將不得不單獨添加的每個網址,而不是僅僅根。