我有以下内容:
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知道什么$范围。消息值是,但它似乎对它一无所知。我做错了什么吗?
stApp.controller('AdminGridSubjectController', ['$scope', function ( $scope ) {
var a = $scope.message;
}]);
要访问Angular UI路由器中父控制器的scope
,请使用:
$scope.$parent
您的问题可能是名称应该反映其中的父元素:
var subject = {
name: 'admin.subject',
parent: admin,
url: '/subject',
...
下面是如何通过ui-router继承$scope的完整示例:plunker ex
有几种方法(和变通方法)来访问父作用域数据…但控制器继承本身,是不可能的:https://github.com/angular-ui/ui-router/wiki/nested-states-&-nested-views#what-do-child-states-inherit-from-parent-states