我需要在模板中获取当前路径($location.path的内容),但不想通过控制器来实现,因为我有很多控制器(我不想复制声明 $scope.currentUrl = $location.path;
)。感谢您的建议。
我需要在模板中获取当前路径($location.path的内容),但不想通过控制器来实现,因为我有很多控制器(我不想复制声明 $scope.currentUrl = $location.path;
)。感谢您的建议。
AngularJS模板只能看到scope中可用的内容,因此您需要以某种方式将$location服务放入一个scope中。在AngularJS应用程序中,有一个始终可用的作用域称为$rootScope,因此它可以用于您的用例。
您可以使用模块的run()方法将$location公开在$rootScope中:
var myApp = angular.module('myApp', []).run(function($rootScope, $location) {
$rootScope.location = $location;
});
这将使得“location”在所有模板中都可用,因此稍后您可以在模板中执行以下操作:
Current path: {{location.path()}}
$state.href($state.current)
而不是$state.current.name
。 - 0x24a537r9
Current path: {{$parent.location.path()}}
。 - benweet{{ $root.location.xxx }}
是一个好习惯,因为任何具有隔离作用域的指令都无法通过简写方法访问它,而$parent.location
取决于您的作用域深度不可靠。$root
总是有效的。 - Scott Byers