我有一个使用ui-router的Angular应用程序,并在我的应用程序中定义了以下状态。
def something(number_a, number_b):
if number_a > number_b
return 'hello'
else:
return 'goodbye'
word = something(a, b)
我的控制器看起来像:
$stateProvider
.state('classes', {
url: '/classes/:type',
templateUrl: 'classes.html',
controller: 'ClassesCtrl',
})
.state('classes.detail', {
url: '/:id',
views: {
"@": {
templateUrl: 'class.html',
controller: 'ClassCtrl'
}
}
});
如您所见,class.detail通过定位未命名的ui-view根级别来隐藏父视图。我遇到的问题是孩子没有继承父母的范围(我无法在class.detail中访问$ scope.foo)。当我进入子状态时,似乎父状态被破坏了,因为如果我点击它,它必须重新加载所有数据。
如何有效隐藏父视图但仍可访问父数据?
答案 0 :(得分:1)
来自ui-router文档:
仅按视图层次结构的范围继承
请记住,只有嵌套状态的视图时,范围属性才会继承状态链。范围属性的继承与状态的嵌套无关,也与视图嵌套(模板)无关。
好吧,您使用@
来定义视图,但您的父状态已命名,因此您应将其命名为@classes
修改:我made this fiddle来解释名称。