AngularJS:检查用户是否在使用params的特定路由上

时间:2014-01-24 14:56:14

标签: angularjs

如果我有这样的路线:

$routeProvider.when('/event/:id', { templateUrl: 'view/event-details.html', controller: 'EventDetailCtrl'});

有没有办法检查用户是否在/event/:id路径

使用if ($location.path().indexOf('/event/') !== -1)是否可以安全地检查用户是否在此路线上?

2 个答案:

答案 0 :(得分:0)

当然有。您可以在控制器中使用console.log或以其他方式使用模板URL中的ng-init来调用任何函数。因此,如果模板被加载,那么它将调用该函数,因此您可以知道用户在该路径上:)

答案 1 :(得分:0)

我不确定完全明白你想要达到的目标。您的$routeProvider会将您的传入请求转发给特定的controller。它位于controller内,您可以完全访问由$routeProvider解析的令牌。

在控制器中声明$routeParams以访问匹配路线的令牌。

$routeProvider
.when('/event/:id', { templateUrl: 'view/event-details.html', controller: 'EventDetailCtrl'});

controller

.controller('EventDetailCtrl', function($scope, $routeParams) {
    $scope.id = $routeParams.id;
})