12 Nisan 2026 Pazar

Redis Replica

1- Docker üzerinden Redis çeklir. 

docker run --name redis-master -p 1453:6379 -d redis
docker run --name redis-slave -p 1461:6379 -d redis


2- Docker ps

Komutu ile master ve slave ait containerların Id'leri elde edilir.


3- docker inspect -f "{{.NetworkSettings.IPAddress}}" redis-master

Yukarıdaki komut ile redis-masterin IPAdresi elde edilir.   172.17.0.2 ne elde edilirse aşağıda o yazılacak.


4-docker exec -it redis-slave redis-cli slaveof 172.17.0.2 6379

Yukarıdaki kod ile slave olan redis master olana eklenmiş oldu.


5- Aşağıdaki gibi iki farklı cmd üzerinden artık master ve slave'e     redis-cli üzerinden bağlanabiliriz.

docker exec -it redis-slave redis-cli --raw      --> redis-slave yazılan yere containerId yazılablir

docker exec -it redis-master redis-cli --raw     --> redis-master yazılan yere containerId yazılablir

6- redis-master üzerinden "set il istanbul" yaparsak ve redis-slave "Get il" dersek görebiliriz.

2 Ağustos 2025 Cumartesi

ViewChild

 Dom nesnesi içerisindeki  herhangi bir html elementini component class'ı üzerinde refere edebilmek için viewchild komponentini kullanırız. 

HTML Elementini Refere Etmek



Componenti Refere Etmek



ng-template

Componentler arası veri değilde html öğeleri içeren kodlar paylaşmak istediğimizde burada devreye ng-content girmektedir. ng-content, html içeriklerini parent componentten child component'e geçirmemizi ve render etmemizi sağlar. Fakat ng-template ile ng-contentten farklı olarak bilinçli olarak bu ilgili kısmında render edilmesini tetiklemeliyiz. ng-content kısmı direkt olarak sayfa içerisinde görüntülenir.


TemplateRef ve ViewContainerRef ile ng-template'i bilinçli olarak çağırma

TempalteRef, ng-template'i component class'ı üzerinde temsil etmemizi sağlayan bir sınıfken, ViewContainerRef ise ng-templatenin nerede oluşturulacağını belirtmemizi sağlayan başka bir sınıftır.



Yukarıdaki görseli incelersek eğer template: içerisindeki ng-template'e bir referans verilmekte ve bu referans component classında  @ViewChild eşliğinde TemplateRef türünde elde edilmektedir. 

Ardından dependency injection ile inject edilen ViewContainerRef nesnesi üzerinden createEmbeddedView metodu kullanılarak ng-template sayfada görüntülenmektedir.





ng-content

Componentler arasında veri aktarmak istediğimiz de @input ve @output decoratorleri kullanılır.

Componentler arası veri değilde html öğeleri içeren kodlar paylaşmak istediğimizde burada devreye ng-content girmektedir. ng-content, html içeriklerini parent componentten child component'e geçirmemizi ve render etmemizi sağlar.

Child component içerisinde ng-component selector'ı ile işaretlediğimiz kısma parentten gönderilen html öğesi basılacaktır.


Multiple ng-content




Modul

 


27 Temmuz 2025 Pazar

Routing

  Routing: Bir componentten (sayfadan) diğer componenete geçiş yapabilmek için Angular Router Modulünden faydalanırız.

  • Adres çubuğuna yazılan URL üzerinden belirlie componentlere gitme
  • Componenet'e query string değerlerini gönderme
  • Browser'ın ileri ve geri düğmelerini aktifleştirme
  • Dinamik olarak component yükleme
  • Rotalar üzerinde yetki kontolü gerçekleştirme (Guard yapısı)
Angular Router Yapılanması

1-) Uygulamanın index.html doyasının <head> bölümü içerisine aşağıdaki 6.satırdaki gibi tanımlama yapılır.

2-) Componentler için rotaların tanımlanması. app-routing-module.ts




4-) Router Link üzerinen istenilen noktaya link oluşturulur. ve Rotayla eşleşen componenetin yükleneceği alanı belirtmemiz gerekir.(<router-outlet>



Route Parameter
URL üzerinde veri taşımamızı sağlar

İstek yapılan URL ile eşleşen sayfaya biryandan da ekstradan URL üzerinden veri taşıyabilmemizi sağlayan yapıdır.Aşağıda solda tüm productlar gelirken sağ tarafta sadece URL üzerindeki 2 değerine karşılık product'ı elde edip listeleyebiliyoruz.




URL'deki route parametresini(urldeki 2 değeri) component içerisinde elde etmek için asağıdaki yaklaşımı sergileriz.


yada aşağıdaki gibi en doğru çözüm 



Child Routes/ Nested Routes






Query String
URL üzerinde veri taşımamızı sağlar.





kaynak : Link


Angular DependencyInjection

ng g s services/product

Yöntem 1 Modul Bazında Tanımlama


1- Service Tanımlama


2 - Tanımlanan serviceyi IOC'a ekleme. Uygulamanın herhangi bir noktasından artık ProductServiceye erişilebilir.



3 - Herhangi bir Componenet içerisinde tanımlanan servisi kullanma

Yöntem 2 Injectable ile Uygulama Bazında Tanımla



Yöntem 3 Componenet Bazında Tanımlama. Servis sınıfına sadece ilgili component erişebilir.