English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Краткое резюме различий между $scope и $rootScope в AngularJS

Одним словом:

     $rootScope действует в глобальном контексте

     $scope действует только в текущем контексте контроллера

Ниже приведен пример для доказательства сказанного:

Определяется модуль с именем myApp

var myApp = angular.module('myApp', []);

Создаются контроллеры oneController и twoController

oneController передаёт $scope и $rootScope

myApp.controller('oneController', ['$scope', '$rootScope', function ($scope, $rootScope) {
 // Локальные переменные видны только в oneController
 $scope.one_language = 'Python';
 // Глобальные переменные, которые можно вызывать
 $rootScope.language = 'Go';
});

twoController передается только $scope

myApp.controller('twoController', ['$scope', function ($scope) {
 // Локальная переменная, отображается только в twoController
 $scope.two_language = 'Java';
});

Содержимое тега HTML

<span ng-app="myApp">
  <style>
    div{margin-top: 15px;border: 2px solid rebeccapurple;width: 400px;}
  </style>
  <div>
    <h3>Я глобальная переменная language: {{ language}}</h3>
  </div>
  <div ng-controller="oneController">
    <h3>Я локальная переменная one_language: {{ one_language}}</h3>
  </div>
  <div ng-controller="twoController">
    <h1>twoController</h1>
    <h3>Я локальная переменная two_language: {{ two_language }}</h3>
    <h3>Я локальная переменная one_language: {{ one_language}}</h3>
    <h3>Я глобальная переменная language: {{ language }}</h3>
  </div>
</span>

Показанные результаты

Резюме

Вот и все содержимое этой статьи, пожалуйста,仔细 посмотрите на коды выше, это поможет вам понять. Если у вас есть вопросы, пожалуйста, оставляйте комментарии, спасибо за поддержку呐喊 руководства.

Основной учебник
Вам может понравиться