我正在浏览http://angular-ui.github.io/ui-router/sample/#/
中的AngularUI路由器示例应用我想我一般都能理解发生了什么,并且能够为我的应用实现类似的功能。
我的问题是,您似乎可以从“查看”文件中访问$stateParams
(例如https://github.com/angular-ui/ui-router/blob/master/sample/contacts.html - 它引用$stateParam
),但是当我访问{{1}时在控制器中,它返回一个空对象。 (https://github.com/angular-ui/ui-router/blob/master/sample/states.js#L83)
所以我想我要做的是通过$stateParams
s在父视图控制器中访问子视图的状态,但它是一个空对象。
相反,我可以通过$stateParam
来获得状态。
为什么?
答案 0 :(得分:1)
这是设计使然,请参阅https://github.com/angular-ui/ui-router/wiki/URL-Routing#two-important-stateparams-gotchas
对我来说这似乎是一个好主意,如果你从一个祖先的子视图中访问状态参数,那么代码就不是很清楚了。
答案 1 :(得分:0)
您始终可以在父范围
中设置参数$scope.setParams = function(params) {
$scope.params = params
}
在子控制器中
$scope.ParentController.setChildViewParams($stateParam);