Najnowsze tutoriale tworzenie stron internetowych
 

AngularJS Zakres


Zakres jest częścią wiązania pomiędzy HTML (Widok) oraz JavaScript (kontrolera).

Zakres jest obiektem z dostępnych właściwości i metod.

Zakres jest dostępna zarówno dla widzenia i sterownika.


Jak używać Scope?

Po dokonaniu kontroler w angularjs, mijamy $scope przedmiotu jako argument:

Przykład

Właściwości wykonane w sterowniku, można określić z punktu widzenia:

<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>
Spróbuj sam "

Podczas dodawania właściwości do $scope przedmiotu w regulatorze, widok (HTML) uzyskuje dostęp do tych właściwości.

W widoku, aby nie używać przedrostka $scope , wystarczy odwołać się do PROPERTYNAME, jak {{carname}} .


Zrozumienie Zakres

Jeśli weźmiemy pod uwagę to angularjs aplikacji składa się z:

  • Zobacz, co jest HTML.
  • Modele, które jest dostępne dane dla bieżącego widoku.
  • Sterownik, który jest funkcją JavaScript, który sprawia, że ​​zmiany / / usuwanie / kontrola danych.

Wtedy to zakres modelu.

Zakres jest obiekt JavaScript z właściwości i metod, które są dostępne zarówno dla widoku i kontrolera.

Przykład

Jeśli dokonasz zmian w widoku model i sterownik zostanie zaktualizowany:

<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>
Spróbuj sam "

Know Your Zakres

Ważne jest, aby wiedzieć, które Zakres masz do czynienia, w dowolnym momencie.

W obu powyższych przykładach jest tylko jeden zakres, więc wiedząc, Twój zakres nie jest problemem, ale dla większych aplikacji może istnieć sekcje HTML DOM, które mają dostęp tylko do określonych zakresów.

Przykład

Gdy mamy do czynienia z ng-repeat dyrektywy każde powtórzenie ma dostęp do bieżącego obiektu powtarzania:

<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>
Spróbuj sam "

Każdy <li> element ma dostęp do bieżącego obiektu powtarzania, w tym przypadku ciąg, które są przekazywane za pomocą x .


korzeń Zakres

Wszystkie aplikacje mają $rootScope który jest zakres utworzony na elemencie HTML zawierającej ng-app dyrektywę.

RootScope jest dostępna w całym zastosowania.

Jeśli zmienna ma taką samą nazwę zarówno w bieżącym zakresie iw rootScope aplikacja użyć jednego w bieżącym zakresie.

Przykład

Zmienna o nazwie "kolor" istnieje w zakresie zarówno kontrolera aw 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>
Spróbuj sam "