让AngularJS $ route重定向到特定状态

时间:2013-03-14 20:50:53

标签: angularjs angularjs-routing angularjs-service

我有特定的观看状态,我希望用户能够链接到。

当用户转到http://localhost:3000/resource/#!/1时,我正试图将控制器路由到特定的页面状态

我的配置是:

   $routeProvider.when('/:memberId', {
      controller: 'MemberDetailsCtrl'
    });
   $locationProvider.html5Mode(false).hashPrefix('!');

我已经进行了很多实验,看起来$ route是未定义的,直到所有范围都完成生成。这意味着我无法执行

$http.get('/resource/' + $route.current.params.memberId + '.json')

在控制器/服务中

并通过检查路由参数触发该特定状态。

我已经能够在我的控制器中使用正则表达式和$location.path()完成所有这些操作,但也许有更好的方法? (使用ngView不够灵活)

重要更新

现在有一个很棒的模块 - ui-router,它比默认的$ routeProvider更有助于管理路线,状态和视图。

1 个答案:

答案 0 :(得分:1)

如何在控制器内为路由更改广播设置监视功能:

$scope.$on('$routeChangeSuccess', function() {
    $http.get('/resource/' + $scope.params.memberId +'.json').success(function (d) {$scope.jsresponse = d;});
  });

jsfiddle