2016-04-06 18 views
2

Sadece sekmeler arasında geçiş yapan, hepsi iyi çalışan bir bileşen kullandım. Dinamik Bileşeni Loaded bileşenlerin içinde bileşeni taşındı kez ben false gelen işlevi setTab(){ this.tabInfo = true } seti zaman {{ tabInfo }} ile yazdırırkenKöşeli 2 tek yönlü veri bağlama Dinamik olarak Yüklenen Bileşenin içinde yenilenmiyor İçerisinde

, ben şablonda false sol ediyorum.

Veriler neden güncellenmiyor? Canlandırıcı bölge denedim, işe yaramıyor.

İşlev yürütülüyor ve tüm değerler doğru ayarlanmışsa, konsolu kontrol ettim. Ancak değişiklik şablonda görünmez. Kurucuda ayarladığım şey düzeltildi, değiştiremem.

Herhangi bir fikrin var mı?

cevap

1

Eğer siz açık bir şekilde

function onYourComponentDispose() { 
} 
let el = this.elementRef 
let reuseInjectorOrCreateNewOne = this.injector; 
this.componentLoader.loadAsRoot(YourComponent, this.elementRef, reuseInjectorOrCreateNewOne, onYourComponentDispose) 
.then((compRef: ComponentRef) => { 
    // manually include Inputs 
    compRef.instance['myInputValue'] = {res: 'randomDataFromParent'}; 
    // manually include Outputs 
    compRef.instance['myOutputValue'].subscribe(this.parentObserver) 
    // trigger change detection 
    cmpRef.location.internalElement.parentView.changeDetector.ref.detectChanges() 
    // always return in a promise 
    return compRef 
}); 

See gibi değişiklik algılama çağırmak gerekir loadAsRoot() kullanırsanız da https://github.com/angular/angular/issues/6370#issuecomment-193896657

+0

şimdi olsun neden sorunlu root olarak yük, bu "id = SomeID" başvurur ve loadIntoLocation olduğunu "#someid" kullanarak tamamen farklı bir referans ve kırılıyor. Tamam. loadIntoLocation gelecekteki için varsayılan olarak;). Teşekkürler Gunther. Birkaç dakika içinde cevap kabul eder ... – Teddy

İlgili konular