将php Laravel的APP_URL值传递给AngularJS

时间:2017-05-31 11:10:50

标签: angularjs laravel laravel-5 laravel-5.2

我在Laravel应用程序中使用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?

2 个答案:

答案 0 :(得分:0)

如何简单地在标题中打印出来?

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

然后只需从window.app_url或app_url访问它。

答案 1 :(得分: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/" ;