AngularJS:检查用户是否在使用参数的特定路由上
如果我有这样的路线:AngularJS:检查用户是否在使用参数的特定路由上,angularjs,Angularjs,如果我有这样的路线: $routeProvider.when('/event/:id', { templateUrl: 'view/event-details.html', controller: 'EventDetailCtrl'}); 是否有办法检查用户是否在/event/:id路线上 使用if($location.path().indexOf('/event/')!==-1)是检查用户是否在这条路线上的安全方法吗?当然有。您可以在controller中使用console.log,也可以在
$routeProvider.when('/event/:id', { templateUrl: 'view/event-details.html', controller: 'EventDetailCtrl'});
是否有办法检查用户是否在/event/:id
路线上
使用
if($location.path().indexOf('/event/')!==-1)
是检查用户是否在这条路线上的安全方法吗?当然有。您可以在controller中使用console.log
,也可以在模板URL中使用ng init
调用任何函数。因此,如果加载了模板,那么它将调用函数,因此您可以知道用户在该路径上:)我不确定是否完全理解您想要实现的目标。您的$routeProvider
将您的传入请求中继到特定的控制器
。它位于控制器内
您可以完全访问$routeProvider
解析的令牌
在控制器中声明$routeParams
,以访问匹配路由的令牌
$routeProvider
.when('/event/:id', { templateUrl: 'view/event-details.html', controller: 'EventDetailCtrl'});
在控制器中
:
.controller('EventDetailCtrl', function($scope, $routeParams) {
$scope.id = $routeParams.id;
})
如果控制器
EventDetailCtrl
仅用于该路由,则在控制器加载时,您位于该路由上,而不是检查路由,即检查加载了哪个控制器。如果出于任何原因,我将同一控制器用于两个不同的路由。我不是试图读取$routeParams
,而是试图找出用户是否在当前路由上:/event/:id
。我在控制器之外使用它,例如在$httpProvider
中,当响应传入应用程序时,我正在处理来自API的错误。