AngularJs "denetleyicisi" sözdizimi - açıklama?
18 ** angularJS controller as xxx
ile ilgili
5* *sözdizimi Açısal başlatılamadı diyor denetleyici ve geçerli değişken fatura kaydedin kapsam.
Görselleştirme :
Tamam , ben alışkanlık denetleyicisi kumanda $scope
kodu daha temiz olacak parametre var.
Ama
Başka bir takma ad belirtin gerekecekgörünümünde
Şu ana Kadar yapabildiğim kadar :
<input type="number" ng-model="qty" />
....controller('InvoiceController', function($scope) {
// do something with $scope.qty <--notice
Ve şimdi yapabilirim :
<input type="number" ng-model="invoic.qty" /> <-- notice
....controller('InvoiceController', function() {
// do something with this.qty <--notice
Soru
Bunu yapmanın amacı nedir ? bir yerden kaldırıp başka bir yere Ekle ?
Ben eksik olduğumu görmekten memnun olacağım.
CEVAP
Bu konuda birkaç şey vardır.
Bazı insanlar $scope
sözdizimi (nedenini sorma) sevmiyorum. Sadece this
kullanabileceklerini söylüyorlar. Hedeflerden biri oldu.
Bir özelliği nereden geldiğini açıkça belirtmiş gerçekten çok yararlı.
Denetleyicileri yuva ve html okurken her özellik geldiği çok açık.
Ayrıcaönlemekbazınokta kuralısorunları.
Örneğin, iki denetleyicileri, hem de aynı adı taşıyan 'adı', bunu yapabilirsiniz:
<body ng-controller="ParentCtrl">
<input ng-model="name" /> {{name}}
<div ng-controller="ChildCtrl">
<input ng-model="name" /> {{name}} - {{$parent.name}}
</div>
</body>
Hem üst hem de alt, bu konuda hiçbir sorun değiştirebilirsiniz. Ama çocuk denetleyicisi içinde gölgeli çünkü $parent
ebeveynin adını görmek için kullanmak gerekir. $parent
sorunlu olabilir büyük html kod, bu isim nereden geliyor bilmiyorum.
controller as
ile yapabilirsiniz:
<body ng-controller="ParentCtrl as parent">
<input ng-model="parent.name" /> {{parent.name}}
<div ng-controller="ChildCtrl as child">
<input ng-model="child.name" /> {{child.name}} - {{parent.name}}
</div>
</body>
Aynı örnek, ama çok daha net okunuyor.
Eclipse "Geçersiz Proje yeni proj...
Kolon-üye garip ne (" : ") k...
&Quot gider;Denetleyicisi" "...
Nasıl Bluebird'ler açıklama yapar...
Ve eğer quot;ya da b ya da c ama hepsi...