AngularJs Scope konusuna http://angulartr.com/angularjs-scope-giris/ konusunda giriş yapmıştık. Kısaca özet geçersek;

  • Her scope’ un adı üstünde bir ETKİ ALANI vardı.
  • İç içe scope lar vardı.
  • Scope’ lar Inheritance yani miras alma vardı.
  • Üstteki scope alttakine göre parent scope idi.

Peki ya uygulamanın tamamının scope’ u ne olacak ? Yani tüm scope’ ların dahil olduğu scope. İşte bu scope’ un adı rootScope.

rootscope

Hemen örnekleyelim;

Uygulamamamızı açtık ve ng-init directive i ile rootScope’ ta mesaj adında bir model yaratıp değerini test olarak verdik.Hiçbir controller’ da mesaj modeli tanımlamamış olmamıza rağmen, hepsinin içinde mesaj modelinin değeri test oldu ve ekrana basıldı. Çünkü tüm scope’ lar rootScope’ u miras olarak aldı. Controller’ ların dışına bir input koyduk ve modelini mesaj olarak verdik. Ve bu input tüm controller lardan bağımsız olduğu için modeli direk rootScope ile bağlantılı. İnput’ un değerini değiştirdikçe, rootScope taki mesaj modelinin değerinin değiştiğini ve dolayısyla, mesaj modelini miras alan tüm scope’ ların içinde de bu değerin güncellendiğini göreceksiniz.

rootScope’ taki değişiklikler anında alt scope’ lara aktarılırken, scope lardaki değişiklikler nasıl rootScope’ a dolayısıyla diğer tüm scope’ lara aktarılacak ?”

Örnekte göreceğiniz üzere, CtrlC’ nin içine bir input ve buton ekledik. İnput mesaj modelinin değerini alıyor. Buton ise CtrlC’ nin içindeki guncelle metodunu tetikliyor. Butona tıklayınca, $rootScope’ taki mesaj değeri, CtrlC’ nin scope’ undaki mesaj modelinin değerini alıyor. $rootScope’ taki mesaj değeri değişince de tüm alt scope’ lar güncelleniyor.

RootScope’ u temen anlamda biraz inceledik. Gelişmiş örnekleri için angularjs dersleri konusunu takip etmeyi unutmayın.

4 Comments AngularJS RootScope

  1. Gencay

    Sanıyorum örnekler makaleler arttıça karışmaya başlamış. Kontrol etmenizde fayda var.
    Paylaşımlar oldukça faydalı, teşekkürler.

    Reply
      1. umut

        Örnek veridğiniz kodlar ile açıklamaları birbirini tutmuyor. örnek kodlar ya bir önceki konuya ait gözüküyor ya da açıklaması bir sonraki başlık da çıkıyor. Sanırım Gencay bey bundan bahsetmiş.

        Ayrıca tüm anlatımlar için teşekkür ederim. Umarım daha fazla içerikle angular derslerine devam edersiniz.

        Reply

Leave A Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir