Posts tagged "rootscope"

AngularJS RootScope

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.