AngularJS:我如何获得$ location.path到模板

use*_*465 51 angularjs

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

pko*_*rce 91

AngularJS模板只能查看作用域中可用的内容,因此您需要以某种方式将$ location服务放在作用域中.AngularJS应用程序中有一个范围始终可用,名为$ rootScope,因此它可以用于您的用例.

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

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

这样可以在所有模板中使用"位置",以便稍后您可以在模板中执行此操作:

Current path: {{location.path()}}
Run Code Online (Sandbox Code Playgroud)