Последние учебники веб-разработки
 

AngularJS Объем


Область является обязательным часть между HTML (вид) и JavaScript (контроллер).

Область является объектом с имеющимися свойствами и методами.

Область доступна как для просмотра и контроллера.


Как использовать Scope?

Когда вы делаете контроллер в AngularJS, вы передаете $scope объекта в качестве аргумента:

пример

Свойства, сделанные в контроллере, могут быть упомянуты в представлении:

<div ng-app="myApp" ng-controller="myCtrl">

<h1>{{carname}}</h1>

</div>

<script>
var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {
    $scope.carname = "Volvo";
});
</script>
Попробуй сам "

При добавлении свойства в $scope объекта в контроллере, вид (HTML) получает доступ к этим свойствам.

По мнению, вы не использовать префикс $scope , вы просто обратитесь к PROPERTYNAME, как {{carname}} .


Понимание масштаба

Если рассматривать AngularJS приложение состоит из:

  • Вид, который является HTML.
  • Модель, которая является доступные для текущего представления данных.
  • Контроллер, который является функцией JavaScript, что делает / изменения / удаляет / управляет данными.

Тогда сфера является модель.

Область является объектом JavaScript со свойствами и методами, которые доступны как для просмотра и контроллера.

пример

Если вы вносите изменения в представлении, модель и контроллер будет обновляться:

<div ng-app="myApp" ng-controller="myCtrl">

<input ng-model="name">

<h1>My name is {{name}}</h1>

</div>

<script>
var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {
    $scope.name = "John Doe";
});
</script>
Попробуй сам "

Знай своего Область

Важно знать, какие масштабы вы имеете дело, в любое время.

В двух примерах выше есть только одна сфера, поэтому зная, ваша сфера не является проблемой, но для больших приложений могут быть разделы в HTML DOM, которые могут получить доступ только определенные области видимости.

пример

Когда имеешь дело с ng-repeat директивы, каждое повторение имеет доступ к текущему объекту повторения:

<div ng-app="myApp" ng-controller="myCtrl">

<ul>
    <li ng-repeat="x in names">{{x}}</li>
</ul>

</div>

<script>
var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {
    $scope.names = ["Emil", "Tobias", "Linus"];
});
</script>
Попробуй сам "

Каждый <li> элемент имеет доступ к текущему объекту повторения, в этом случае строка, которая называется с помощью x .


Корневая Область применения

Все приложения имеют $rootScope которое является областью создается на элементе HTML , который содержит ng-app директивы.

RootScope доступен во всем приложении.

Если переменная имеет такое же имя, как в текущей области и в rootScope, приложение использовать один в текущей области.

пример

Переменная с именем "цвет" существует в области видимости и контроллер, и в rootScope:

<body ng-app="myApp">

<p>The rootScope's favorite color:</p>
<h1>{{color}}</h1>

<div ng-controller="myCtrl">
    <p>The scope of the controller's favorite color:</p>
    <h1>{{color}}</h1>
</div>

<p>The rootScope's favorite color is still:</p>
<h1>{{color}}</h1>

<script>
var app = angular.module('myApp', []);
app.run(function($rootScope) {
    $rootScope.color = 'blue';
});
app.controller('myCtrl', function($scope) {
    $scope.color = "red";
});
</script>
</body>
Попробуй сам "