javascript - Angular js 中的 $scopes

标签 javascript angularjs routes

我是 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,因此由于您的 viewControllerdirectoryController 的子级,因此您可以访问其中的变量。

$rootScope -> directoryController -> viewController

viewController 可以访问所有父 $scopedirectoryController 可以访问 $rootScope 以及$rootScope 只能访问其自身。

关于javascript - Angular js 中的 $scopes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35286060/

相关文章:

javascript - 精度较低的 GeoJSON

javascript - Node 事件发射器

javascript - 使用 jquery 拆分数组?

angularjs - angular-chart.js,如何更改颜色标签

javascript - 用于动态创建组件的 React v4 路由

routes - HAproxy 透明模式独立设置

javascript - 需要了解一些正则表达式

javascript - $q.all(p1, p2).then() 似乎在两个 promise 都得到解决之前就被触发了

css - 防止悬停改变链接的高度

c# - UrlHelper.Action 方法未映射到具有第一个可变参数的正确路由