我有以下内容:
var admin = {
name: 'admin',
url: '/admin',
views: {
'nav-sub': {
templateUrl: '/Content/app/admin/partials/nav-sub.html',
controller: function ($scope) { $scope.message = "hello"; }
}
},
controller: ['$scope', function ($scope) {
$scope.message = "hello";
}]
}
var subject = {
name: 'subject',
parent: admin,
url: '/subject',
views: {
'grid@': {
templateUrl: '/Content/app/admin/partials/grid-subject.html',
controller: 'AdminGridSubjectController',
}
}
};
我希望AdminGridSubjectController知道$ scope.message值是什么,但似乎对它没有任何了解。有什么我做错了吗?
stApp.controller('AdminGridSubjectController', ['$scope', function ( $scope ) {
var a = $scope.message;
}]);
答案 0 :(得分:17)
要在Angular UI路由器中访问父控制器的scope
,请使用:
$scope.$parent
然后可以免费使用父作用域。
答案 1 :(得分:0)
您的问题可能是名称应反映其中的父级:
var subject = {
name: 'admin.subject',
parent: admin,
url: '/subject',
...
以下是如何使用ui-router继承$ scope的完整说明:plunker ex
答案 2 :(得分:0)
有几种方法(和解决方法)来访问父作用域数据......但是控制器继承本身是不可能的:https://github.com/angular-ui/ui-router/wiki/nested-states-&-nested-views#what-do-child-states-inherit-from-parent-states