Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS:检查用户是否在使用参数的特定路由上_Angularjs - Fatal编程技术网

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的错误。