将 php Laravel 的 APP_URL 值传递给 AngularJS

Pass php Laravel's APP_URL value to AngularJS

我在 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 的最简洁方法是什么?有没有办法全局设置它,以便 APP_URL 在我所有的 AngularJS 应用程序中可用?

在页眉中简单地打印出来怎么样?

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

之后就可以从 window.app_url 或 app_url 访问它了。

可能不是最好的解决方案,但对我有用

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

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

现在您可以在 angular 控制器中使用 $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/" ;