2017-05-31 55 views
0

我在我的Laravel應用程序中使用AngularJS。將php Laravel的APP_URL值傳遞給AngularJS

在AngularJS,我使用:

$location.host() 

讓我的應用程序的域(例如:www.example.com),並得到我的API訪問權限,如:

var url = $location.protocol() + "://" + $location.host() + "/api/products/" ; 

現在我更換了服務器,我的主要應用程序位置從www.example.com變爲www.example.com/here$location.host()給我www.example.com,但不是/here的一部分。

我試圖找到一種方法,使用Laravel的APP_URL值(其中包含我的主要應用的位置信息),並把它傳遞給AngularJS:

var app = angular.module("appProducts"); 
app.controller("CtrlUserSchedule", ['$scope', '$http', '$location', '$modal', function($scope, $http, $location, $modal) { 

    --> var laravelUrl = ** get php APP_URL value here **; 

     var apiUrl = laravelUrl + "/api/products/" ; 

什麼是APP_URL傳遞給AngularJS最徹底的方法。有沒有一種方法可以在全球範圍內設置,所以我的所有AngularJS應用程序都可以使用APP_URL?

回答

0

如何簡單地在標題中打印出來?

<script> 
window.app_url = {{env('APP_URL')}} 
</script> 
</head> 

然後它可以簡單地在window.app_url或app_url之後訪問。

+0

超!有效。謝謝 – user3489502

0

可能不是最好的解決方案,但它爲我工作

In blade 
<script type="text/javascript"> 
    var _url= {{env('APP_URL')}}; 
</script> 

In Angular Module 
angular.module('testAPp', []) 
    .run(function($rootScope) { 
     $rootScope.url= _url; 
    }); 

現在你可以使用$ rootScope.url的角度控制器

var app = angular.module("appProducts"); 
app.controller("CtrlUserSchedule", ['$scope','$rootScope', '$http', '$location', '$modal', function($scope, $rootScope, $http, $location, $modal) { 
     var apiUrl = $rootScope.url + "/api/products/" ; 
+1

優秀的解決方案。謝謝! – user3489502