SORU
22 Ocak 2014, ÇARŞAMBA


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 :

enter image description here

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
22 Ocak 2014, ÇARŞAMBA


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DavideoDesign

    DavideoDesig

    24 NİSAN 2006
  • gsipek

    gsipek

    20 Temmuz 2007
  • TechXCentral

    TechXCentral

    12 Temmuz 2011