【发布时间】:2013-03-03 10:18:43
【问题描述】:
我希望用户能够链接到特定的查看状态。
当用户转到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 更好地帮助管理路由、状态和视图。
【问题讨论】:
-
尝试在你的控制器中注入
$routeParams而不是$route,然后在你的get()调用中使用$routeParams.memberId。 -
我试过了,很遗憾,我得到了同样的结果。
标签: angularjs angularjs-routing angularjs-service