Typescript/Angular'da bir Child HTML öğesi nasıl stil verilir
Hibrit bir mobil uygulama oluşturmak için Ionic 3 kullanıyorum, gereksinimlerden biri kullanıcıya araç çubuğu rengini dinamik olarak değiştirme imkânı sağlamaktır. Sayfa render edildikten sonra HTML şöyle görünür:
<div id="divICanControl"> //bu div'i ben kontrol edebilirim <div> //ama bu olan framework tarafından üretilir ve bu div araç çubuğunun arka plan rengini değiştirir </div> </div>
Aşağıdakini yapmayı denedim: document.getElementById('divICanControl').childNodes[0].style.backgroundColor=this.someColor;
Bazen çalıştı ama VSCode'da aşağıdaki hatayı oluşturdu: [ts] 'Node' türünde 'style' özelliği yok.
ve uygulamanın derlemesini durdurdu.
Şu anda Angular kullanarak DOM'u manipüle etmenin doğru yolunu arıyorum.
Yardımınız için teşekkür ederim ve lütfen Angular 5 ve TypeScript konusunda yeni olduğumu unutmayın.
Cevap #1
Öğeleri stilize etmenin önerilen yolu document....style ile değil, renderer ile yapmaktır. Gözlemleyin:
<div id="first">
first
<div id="second">
second
</div>
</div>
<button (click)="change()">Change</button>
import { Component, OnInit, Renderer2 } from '@angular/core';
constructor(private renderer: Renderer2) { }
change() {
const parent: HTMLElement = document.getElementById('first');
const child = parent.children[0];
this.renderer.setStyle(child, 'background-color', 'red');
}
