En son web geliştirme öğreticiler
 

AngularJS kapsam


Kapsamı HTML arasındaki bağlanma parçasıdır (view) ve JavaScript (controller) .

kapsamı uygun özelliklere ve yöntemlerle bir amacıdır.

kapsam görünümü ve denetleyicisi için kullanılabilir.


Nasıl Kapsam'ı Kullanılır?

Eğer angularjs bir denetleyici yaptığınızda, pas $scope bağımsız değişken olarak nesneyi:

Örnek

denetleyicisi yapılan Özellikleri, görünümde sevk edilebilir:

<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>
Kendin dene "

Için özelliklerini eklerken $scope denetleyicisi nesnenin, görünüm (HTML) bu özelliklere erişim alır.

Görünümünde, önek kullanmayın $scope , sadece bir mülküne bakın gibi {{carname}} .


Kapsamını anlama

Biz oluştuğu bir angularjs uygulamayı ele alırsak:

  • HTML olan görüntüle.
  • Mevcut görünüm için uygun veri modeli.
  • değişiklikler / yapar JavaScript işlevi olan Kontrolör, / / ​​veri kontrolleri kaldırır.

Daha sonra, kapsamı Modelidir.

kapsam görünümü ve kontrol hem de mevcuttur özellikleri ve yöntemleri, sahip olan bir JavaScript nesnesidir.

Örnek

Eğer görünümünde değişiklik yaparsanız, modeli ve denetleyici güncellenecektir:

<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>
Kendin dene "

Sizin Kapsam'ı bilin

Size herhangi bir zamanda, başa hangi kapsam bilmek önemlidir.

İki örnekte yukarıdaki böylece kapsam bir sorun değildir, ancak daha büyük uygulamalar için belirli kapsamları yalnızca erişebilir HTML DOM bölümler olabilir bilerek tek kapsamı nedir.

Örnek

Ile uğraşırken ng-repeat yönergesi, her yineleme mevcut tekrarlama nesnesine erişim var

<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>
Kendin dene "

Her <li> elemanı bu durumda, kullanarak adlandırılan bir dize, cari tekrarlama nesneye erişimi olan x .


Kök Kapsam

Tüm başvurular bir var $rootScope içeren HTML elemanı üzerinde oluşturulan kapsamı ng-app direktifini.

rootScope tüm uygulama mevcuttur.

Değişken hem geçerli kapsamda ve rootScope aynı adı varsa, uygulama geçerli kapsamda birini kullanın.

Örnek

Adında bir değişken "color" kontrolörün hem kapsamı ve rootScope var:

<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>
Kendin dene "