English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Одним словом:
$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>
Показанные результаты
Резюме
Вот и все содержимое этой статьи, пожалуйста,仔细 посмотрите на коды выше, это поможет вам понять. Если у вас есть вопросы, пожалуйста, оставляйте комментарии, спасибо за поддержку呐喊 руководства.