【发布时间】:2015-12-18 17:10:18
【问题描述】:
我有一个使用 ui-router 的 Angular 应用程序,在我的应用程序中定义了以下状态。
$stateProvider
.state('classes', {
url: '/classes/:type',
templateUrl: 'classes.html',
controller: 'ClassesCtrl',
})
.state('classes.detail', {
url: '/:id',
views: {
"@": {
templateUrl: 'class.html',
controller: 'ClassCtrl'
}
}
});
我的控制器看起来像:
app.controller('ClassesCtrl', function($scope, $stateParams){
$scope.foo = "bar";
});
app.controller('ClassCtrl', function($scope, $stateParams){
console.log($scope.foo);
});
如您所见,class.detail 通过定位未命名的根级 ui-view 来隐藏父视图。我遇到的问题是孩子没有继承父母的范围(我无法在 class.detail 中访问 $scope.foo)。当我进入子状态时,父状态似乎被破坏了,因为如果我点击返回,它必须重新加载所有数据。
如何有效地隐藏父视图但仍然访问父数据?
【问题讨论】:
-
通过服务共享您的数据
-
我认为嵌套视图会自动访问父状态?为什么在我的情况下它会被破坏?
-
在父视图中创建的$scope应该可以被子视图访问吗?
标签: javascript angularjs angular-ui-router