ChangeDetectorRef ithalat hatayı düzeltmek için: ChangeDetectorRef yok sağlayıcı

oy
1

Benim bileşenlerinden biri haline ChangeDetectorRef ithal bir sorun yaşıyorum.

> Seçenekler-Izgara (çocuk) - -> FComponent (torun) Referans için, soy ağacı PComponent (ana) gider.

Bu benim tarayıcıda alıyorum hatadır:

StaticInjectorError(AppModule)[FComponent -> ChangeDetectorRef]: 
  StaticInjectorError(Platform: core)[FComponent -> ChangeDetectorRef]: 
    NullInjectorError: No provider for ChangeDetectorRef!

Hata benim için gereken kod satırı ilk çocuk bileşeni (Seçenekler-Grid) başlatır Büyük ebeveyn bileşeni (PComponent) yer almaktadır.

<div>
    <options-grid></options-grid>
</div>

Ben yapıcı doğru ChangeDetectorRef sağlanması ve FComponent içinde doğru bir şekilde ithal ediyorum. PComponent HTML kod noktalarına hata referans I Seçenek-Izgara Bileşeni burada.

Ben ana bileşende ChangeDetectorRef sağlayan değilim çünkü bu mu?

Oluştur 27/11/2018 saat 18:12
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

Ben de sonradan farkettim sorunun nedeni bir hayır-hayır olan torun bileşeninde ChangeDetectorRef kullanmaya çalışıyor oldu.

Bunun yerine kök ebeveyn bileşeni (PComponent) içerisinde ChangeDetectorRef kullanılır ve ayrıca bu bileşen için ngAfterContentChecked () yöntemini uygulamaya.

Bu PComponent içinde benzeyen sona erdi budur:

import { Component, OnInit, ViewContainerRef, ChangeDetectorRef, AfterContentChecked } from '@angular/core';

export class PComponent implements OnInit, AfterContentChecked {

    constructor(private cdr: ChangeDetectorRef){}

    ngAfterContentChecked() {
        this.cdr.detectChanges();
    }

    ngOnInit() {
        ....
    }
}
Cevap 27/11/2018 saat 19:34
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more