Skip to content

Giriş

  • Angular nedir?
  • Temel Bilgiler
    • Genel Bakış
    • Bileşenler
    • Dinamik Verileri Yönetme
    • Dinamik Şablonları Oluşturma
    • Koşullu İfadeler ve Döngüler
    • Kullanıcı Etkileşimini Yönetme
    • Kod Paylaşımı

Kapsamlı Kılavuzlar

  • Component
    • Bir Componentin Anatomisi
    • Component’leri İçe Aktarma ve Kullanma
    • Component Seçiciler
    • Stil Componentleri
    • Input Özelliklerine Sahip Verileri Kabul Etme
    • Outputları Olan Özel Etkinlikler
    • Ng-content ile İçerik Projeksiyonu
    • Component Ana Öğeleri
    • Component Yaşam Döngüsü
    • Sorgularla Bileşen Alt Öğelerine Başvurma
    • DOM API’lerini Kullanma
    • Inheritance
    • Bileşenleri Programlı Olarak Oluşturma
    • Gelişmiş Bileşen Yapılandırması
  • Şablon Sözdizimi
    • Genel Bakış
    • Text Interpolation
    • Template Statements
    • Bağlamayı Anlama
    • Property Binding
    • En İyi Property Binding Kullanımları
    • Öznitelik Bağlama
    • Sınıf ve stil bağlama
    • Olay Bağlama
    • İki Yönlü Bağlama
    • Yerleşik Kontrol Akışı
    • Şablon Değişkenlerini Anlama
    • Şablon Olarak SVG
  • Directives
    • Directives
    • Öznitelik yönergeleri
    • Yapısal Direktifler
    • API Direktif Bileşimi

Bağımlılık Enjeksiyonu

  • Genel Bakış
  • Başlangıç
  • Dokümanlar
  • Kapsamlı Kılavuzlar
  • Component
  • Component Ana Öğeleri

Component Ana Öğeleri

Angular, bileşenin seçicisine eşleşen her HTML öğesi için bir bileşen örneği oluşturur. Bileşenin seçicisine eşleşen DOM öğesi, o bileşenin ana öğesidir. Bir bileşenin şablonunun içeriği, ana öğesinin içine render edilir.

// Component source
@Component({
  selector: 'profile-photo',
  template: `
    <img src="profile-photo.jpg" alt="Your profile photo" />
  `,
})
export class ProfilePhoto {}
<!-- Using the component -->
<h3>Your profile photo</h3>
<profile-photo />
<button>Upload a new profile photo</button>
<!-- Rendered DOM -->
<h3>Your profile photo</h3>
<profile-photo>
  <img src="profile-photo.jpg" alt="Your profile photo" />
</profile-photo>
<button>Upload a new profile photo</button>

Yukarıdaki örnekte <profile-photo>, ProfilePhoto bileşeninin ana öğesidir.

Ana öğeye bağlama #

Bir bileşen, özellikleri, nitelikleri ve olayları ana öğesine bağlayabilir. Bu, bileşen şablonundaki öğelerdeki bağlantılarla aynı şekilde davranır, ancak @Component dekoratöründe host özelliği ile tanımlanır.

@Component({
  ...,
  host: {
    'role': 'slider',
    '[attr.aria-valuenow]': 'value',
    '[tabIndex]': 'disabled ? -1 : 0',
    '(keydown)': 'updateValue($event)',
  },
})
export class CustomSlider {
  value: number = 0;
  disabled: boolean = false;
  updateValue(event: KeyboardEvent) { /* ... */ }
  /* ... */
}

HostBinding ve @HostListener dekoratörleri #

@HostBinding ve @HostListener dekoratörlerini sınıf üyelerine uygulayarak ana elemana alternatif olarak bağlanabilirsiniz.

@HostBinding, barındırma özelliklerini ve niteliklerini özelliklere ve yöntemlere bağlamanıza olanak tanır:

@Component({
  /* ... */
})
export class CustomSlider {
  @HostBinding('attr.aria-valuenow')
  value: number = 0;
  @HostBinding('tabIndex')
  getTabIndex() {
    return this.disabled ? -1 : 0;
  }
  /* ... */
}

@HostListener, olay dinleyicilerini ana öğeye bağlamanıza olanak tanır. Dekoratör, bir olay adı ve isteğe bağlı bir argüman dizisini kabul eder:

export class CustomSlider {
  @HostListener('keydown', ['$event'])
  updateValue(event: KeyboardEvent) {
    /* ... */
  }
}

Her zaman @HostBinding ve @HostListener yerine host özelliğini kullanmayı tercih edin. Bu dekoratörler yalnızca geriye dönük uyumluluk için mevcuttur.

Bağlantı çarpışmaları #

Bir bileşeni bir şablon içinde kullandığınızda, bu bileşen örneğinin elemanına bağlantılar ekleyebilirsiniz. Bileşen ayrıca aynı özellikler veya öznitelikler için ana bağlantılar tanımlayabilir.

@Component({
  ...,
  host: {
    'role': 'presentation',
    '[id]': 'id',
  }
})
export class ProfilePhoto { /* ... */ }
<profile-photo role="group" [id]="otherId" />

Bu tür durumlarda, hangi değerin kazandığını belirleyen aşağıdaki kurallar geçerlidir:

  • Eğer her iki değer de statik ise, örnek bağlama kazanır.
  • Eğer bir değer statik ise ve diğeri dinamikse, dinamik değer kazanır.
  • Eğer her iki değer de dinamikse, bileşenin ana bağlamı kazanır.
Neler hissediyorsun?
Share This Article :
  • Facebook
  • Twitter
  • LinkedIn
  • Pinterest
Hala sıkışık? Nasıl yardımcı olabiliriz?

Nasıl yardımcı olabiliriz?

Updated on 4 March 2024
Ng-content ile İçerik ProjeksiyonuComponent Yaşam Döngüsü

Powered by BetterDocs

İçindekiler
  • Ana öğeye bağlama
  • HostBinding ve @HostListener dekoratörleri
  • Bağlantı çarpışmaları
Angular TR

Tüm hakları saklıdır