$route取决于当前URL($location)

$route depend on the current URL ($location)

本文关键字:location URL route 取决于      更新时间:2023-09-26

在我的angularJS应用程序中,我使用symfony作为rest API。

根据我当前的url,我是否使用app_dev.php下的$http。我用以下代码实现了这一点:

app.run (function( $rootScope, $location ){
    $rootScope.dev = "";
    if ( $location.absUrl().search("app_dev.php") > 0 ) {
        $rootScope.dev = "app_dev.php/";
    }
}
app.controller('OfferIndexCtrl', function($scope, $http, $location, $filter, $rootScope){
    $http.get( $rootScope.dev + 'stage/offer/get').success(function(json){
        $scope.offerList = json.offerList;
    });
}

这很好用。但是.run((在.config((之后运行,不可能将其集成到routeProvider中。

有人能帮我把它集成到我的路线中吗提供商

app.config(['$routeProvider', '$locationProvider',
        function( $routeProvider, $locationProvider ){
            $routeProvider.
                when('/', {
                    templateUrl: 'stage/view/offer/index',
                    controller: 'OfferIndexCtrl'
                }).
                otherwise({
                    redirectTo: '/'
                })
        }
]);

您应该使用<base>标记为您的应用程序设置基本URL,并根据您的Symfony环境将您的基本URL设置为"/"或"/app_dev.php/",使用TWIG环境助手。您也可以将其用于"app_test.php"。

<base href="{{ path('homepage') }}">

有了这个,你的整个应用程序就可以在这个基本URL上工作了,你不需要更多了。

基本HTML5标签如何与AngularJS应用程序一起工作在这里有详细描述ngRoute为所有路由设置基本url

如果我在Angular部分之前使用纯JS,我可以从那里使用这个变量。以下代码对我有效:

var dev = "";
if ( location.pathname.search("app_dev.php") > 0 ) {
        dev = "app_dev.php/";
        console.log( "App läuft unter dev");
}
App.config(['$routeProvider', '$locationProvider',
    function( $routeProvider, $locationProvider ){
        $routeProvider.
            when('/', {
                templateUrl: dev + 'stage/view/offer/index',
                controller: 'OfferIndexCtrl'
            }).
}