SORU
16 Kasım 2013, CUMARTESİ


Biz zaten yönergesi'kapsamı ile kontrolör ler varken yönergesi'link fonksiyonu s ihtiyacı Nedir?AngularJS:

Kapsam ve şablon üzerinde bazı işlemler yapmak istiyorum. Ya link fonksiyonu veya controller işlevi hem kapsam erişimi ( beri) olarak bunu yapabilirim gibi görünüyor

link fonksiyon ve denetleyicisi kullanmak zorunda kaldığımda durumda mı ?

angular.module('myApp').directive('abc', function($timeout) {
    return {
        restrict: 'EA',
        replace: true,
        transclude: true,
        scope: true,
        link: function(scope, elem, attr) { /* link function */ },
        controller: function($scope, $element) { /* controller function */ }
    };
}

Ayrıca, link non-açısal dünya olduğunu anlıyorum. Yani, $watch, $digest $apply kullanabilirim.

Güncelleme:

link fonksiyon önemi nedir ? Kumanda zaten vardı

CEVAP
18 Mayıs 2014, Pazar


Benim sonrailklink controller fonksiyonları ile mücadele ve onlar hakkında çok şey okumak, sanırım artık cevabını biliyorum.

İlk sağlaranlıyorum,

Nasıl açısal direktifleri özetle: iş yapmak

  • Bir şablon (bir dize veya dize yüklenmiş olarak) ile başlıyoruz

    var templateString = '<div my-directive>{{5 10}}</div>';

  • Şimdi, bu templateString olarak paketleniraçısal eleman

    var el = angular.element(templateString);

  • el şimdi biz $compile ile geri almak için derlemeklinkişlevi.

    var l = $compile(el)

    Burada neler olduğunu

    • $compile tüm şablon içeri girer ve tanıdığı tüm yönergeler toplar.
    • Keşfedilen direktifleriderlenmiş yinelemeli olarakve link fonksiyonları toplanır.
    • Daha sonra link tüm fonksiyonları link yeni bir işlev sarılmış ve l olarak iade edilir.
  • Son olarak, scope ve onların karşılık gelen elemanları bu daha fazla sarılmış bağlantı işlevleri yürüten l (bağlantı) bu fonksiyon için scope sağlarız.

    l(scope)

  • Bu DOM yeni bir düğüm olarak template ekler ve onun saatler ekleyen controller çağırırkapsamDOM şablon ile paylaştı.

enter image description here

Karşılaştırmaderlemevslinkvsdenetleyicisi:

  • Her Direktifderlenmişsadece bir kezlinkişlevi yeniden kullanmak için korunur. Bu nedenle, eğer bir şey bir Direktif tüm örnekleri için geçerli eğer orada Direktifi içinde yapılmalıdır compile işlevi.

  • Şimdi, derleme sonra link takarken yürütülen bir işleve sahiptirşabloniçinDOM. Yani, talimatın her örneği için özel olan her şeyi yapıyoruz. Örneğin:olayları takma,mutasyona şablonu kapsam dayalıvb.

  • Son olarakdenetleyicisimevcut Direktif süre canlı ve tepkili olmaya çıkartılacaktır DOM (ekli aldıktan sonra). Bu nedenle:

    (1) görünümü ayarladıktan Sonra[V] (yani şablon) bağlantı ile. $scope [ . bizim ^strong>Mve 34* *bizim [C]M V C

    (2) avantajı2-Yolile bağlamakapsam . $ saatler ayarlayarak.

    (3)* *35 saatler bu çalışma zamanı sırasında şablonu izliyor ne olduğundan denetleyicisi eklenmesi bekleniyor.

    (4) son olarak, controller ayrıca ilgili direktifleri arasında iletişim kurabilmek için kullanılır. (https://docs.angularjs.org/guide/directive 37 *örnek gibi)

    (5) ama onun hakkında da. link işlevi tüm bu yaptığım doğrudurendişeleri ayrılması.

Bu nedenle, son olarak mükemmel tüm parçaları uyuyor biz şu var :

enter image description here

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Paul Schroder

    Paul Schrode

    30 Kasım 2007
  • pucksz

    pucksz

    24 Mart 2006
  • Wild Academy

    Wild Academy

    8 Aralık 2009