我是 Angular 初学者。我浏览了 Angular 路由教程,我对以下代码有疑问,其中一个 Controller 的 $scope 似乎被另一个 Controller 访问。据我所知,我们无法访问一个 Controller 的 $scope 数据,另一个 Controller 也无法访问该数据。有人可以解释一下这种情况吗?并且代码在这里运行良好。
<html lang="en" ng-app="myApp">
<body>
<div ng-controller="directoryController">
<div ng-view>
</div>
</div>
</body>
<script src="angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>
<script>
var app = angular.module("myApp", ['ngRoute']);
app.config(function ($routeProvider) {
$routeProvider
.when('/', {templateUrl: 'directory.html'})
.when('/view/:id', {templateUrl: 'view.html', controller: 'viewController'})
.otherwise({redirectTo: '#'})
});
app.controller('directoryController', ['$scope', function ($scope) {
//i have defined an array called data here suppose its there
$scope.people = data;
}]);
app.controller('viewController', ['$scope', '$routeParams', function ($scope, $routeParams) {
$scope.person = $scope.people[$routeParams.id]
}]);
</script>
</html>
最佳答案
Angular $scope
就像一棵树,树干是 $rootScope
以及来自该树或另一个 $scope
的所有其他分支$scope
,因此由于您的 viewController
是 directoryController
的子级,因此您可以访问其中的变量。
$rootScope -> directoryController -> viewController
viewController
可以访问所有父 $scope
,directoryController
可以访问 $rootScope
以及$rootScope
只能访问其自身。
关于javascript - Angular js 中的 $scopes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35286060/