Подтвердить что ты не робот

Что такое $scope в AngularJS?

Я новичок в AngularJS, и я не могу понять, что $scope находится в AngularJS. Может кто-нибудь объяснить проще всего, что делает $scope в AngularJS и для чего мы можем его использовать. Пожалуйста, объясните это так, чтобы вы объяснили кому-то абсолютно не знание программирования. Также может ли кто-нибудь объяснить код ниже по строкам самым простым способом?

function MyController($scope) {
    $scope.username = 'World';

    $scope.sayHello = function() {
        $scope.greeting = 'Hello ' + $scope.username + '!';
    };
};
4b9b3361

Ответ 1

Каждый контроллер имеет связанный объект $scope.

Функция контроллера (конструктора) отвечает за настройку свойств и функций модели. Это можно сделать только через $scope. Независимо от того, какую функцию или модель вы применяете в представлении (html файл), доступ к которому осуществляется в контроллере с использованием области.

Доступны только методы, определенные в этом объекте $scope из HTML/view. Пример - из ng-click, фильтров и т.д.

Теперь рассмотрим ваши примеры один за другим -

1.

 function MyController($scope) {
 $scope.username = 'World';
 };

В приведенном выше примере вы определяете любой атрибут с именем пользователя с его значением "Мир". Предположим, что в html файле у вас есть следующая строка кода -

<div ng-controller="MyController">
<h1>{{data.username}}</h1></div>

Это автоматически выберет значение из контроллера и отобразит его на экране. Стоит отметить, что "данные". в разметке - это имя контроллера, которое html-страница может ссылаться на контроллер как. Обычно это определяется в контроллере или в верхней части html файла.

2.

$scope.sayHello = function() {
$scope.greeting = 'Hello ' + $scope.username + '!';
};

Это функция, которую вы определили в контроллере, доступ к которому вы можете получить, следуя коду -

<div ng-controller="MyController">
<h1>{{data.greeting}}</h1></div>

Здесь data.greeting автоматически выберет значение из функции sayHello, то есть отображаемое значение будет "Hello World". "Мир" от имени пользователя, связанного с "Привет" раньше.

Надеюсь, это очистит ваши сомнения.:)

Ответ 2

Прочтите следующее руководство.

Другими словами, scope является "объектом", который "связывается" с элементом DOM, где вы применяете контроллер. Все дочерние элементы могут считывать и изменять данные области (если вы не изменяете примитивы в новых областях или изолированы).