AngularJS:我怎样才能获得$ location.path模板

我需要模板中的url($ location.path的内容)中的当前path。 但不是通过控制器,因为我有很多控制器(我不想复制$scope.currentUrl = $location.path;声明)。 感谢您的build议。

AngularJS模板只能看到在一个范围内可用的东西,所以你需要以某种方式把$ location服务放在一个范围内。 AngularJS应用程序中总有一个名为$ rootScope的范围,因此可以用于您的用例。

你可以做的是使用模块的run()方法在$ rootScope中公开$ location:

 var myApp = angular.module('myApp', []).run(function($rootScope, $location) { $rootScope.location = $location; }); 

这将使所有模板中的“位置”都可用,以便以后可以在模板中执行:

 Current path: {{location.path()}} 

另一种方法是使用更多的语义和多function的UI路由器 ,然后在控制器中检索当前状态 ,并将其存储在$scope

 app.controller('MyCtrl', ['$scope', '$state', function MyCtrl($scope, $state) { $scope.state = $state.current.name; ... }