[英]$route depend on the current URL ($location)
在我的 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 中。
谁能帮我把它集成到我的 routeProvider 中
app.config(['$routeProvider', '$locationProvider',
function( $routeProvider, $locationProvider ){
$routeProvider.
when('/', {
templateUrl: 'stage/view/offer/index',
controller: 'OfferIndexCtrl'
}).
otherwise({
redirectTo: '/'
})
}
]);
您应该使用<base>
标记为您的应用程序设置基 URL,并根据您的 Symfony 环境将基地址设置为“/”或“/app_dev.php/”,使用环境的 TWIG 助手。 您也可以将其用于“app_test.php”。
<base href="{{ path('homepage') }}">
有了这个,您的整个应用程序将只在该基本 URL 上运行,您不需要更多内容。
此处详细描述了基本 HTML5 标记如何与 AngularJS 应用程序一起使用ngRoute set base url for all routes
如果我在 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'
}).
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.