Sadece Açısal 2 öğrenme başladık ve bu Eğik 2 olay
Ben iç içe iki iç bileşenleri ile bir dış bileşeni var ... işte, hep ilk yığın taşması soru gider.InnerComponent1
'da, tıklatıldığında, dış bileşenin yakaladığı bir olayı tetikleyen, daha sonra değeri (her zaman doğru)
InnerComponent2
'a geçiren bir düğmem var. Bu değere göre
InnerComponent2
görüntülenir (* ngIf).
Çalışıyor.
Buuuut .. InnerComponent2
, tıklatıldığında, bu değeri yanlış kılan, bileşeni gizleyen bir düğmeye sahiptir.
Bu da işe yarıyor.
Ancak, bir kez InnerComponent2
gizledim,görüntülenen InnerComponent1
düğmesinin artık çalışmaz. Herhangi bir hata görmüyorum ve dış bileşenin hala olayları aldığını doğruladım. http://plnkr.co/edit/X5YnNVm0dpFwA4ddv4u7?p=preview
Herhangi düşünceler:
İşte senaryoyu gösteren bir plnkr var?
Çok teşekkürler.
Dış bileşen
//our root app component
import {Component} from 'angular2/core';
import {Inner1Component} from 'src/inner1';
import {Inner2Component} from 'src/inner2';
@Component({
selector: 'my-app',
providers: [],
template: `
<p>OuterComponent</p>
<inner1 (show2)="show2Clicked = $event"></inner1>
<inner2 [showMe]="show2Clicked"></inner2>
`,
directives: [Inner1Component, Inner2Component]
})
export class App {
show2Clicked: boolean;
}
InnerComponent1
import {Component, EventEmitter, Output} from 'angular2/core'
@Component({
selector: 'inner1',
providers: [],
template: `
<p>inner1</p>
<button (click)="showInner2()">Show inner2</button>
`,
directives: []
})
export class Inner1Component {
@Output() show2 = new EventEmitter<boolean>();
showInner2() {
this.show2.emit(true);
}
}
InnerComponent2
import {Component, Input} from 'angular2/core'
@Component({
selector: 'inner2',
providers: [],
template: `
<div *ngIf="showMe">
<p>Inner2</p>
<button (click)="showMe = false">Cancel</button>
</div>
`,
directives: []
})
export class Inner2Component {
@Input() showMe: boolean;
}
mükemmel. Hızlı cevabınız için çok teşekkürler. Beklendiği gibi çalışır. Tam olarak ne olup bittiğini açıklığa kavuşturmak için: Değişkenlerin ve yeniden değerlendiricilerin yeniden değerlendirilmesini tetiklemek için '' içte '' olay yayıcısına ihtiyacımız var mı? Yayınlanan "showMeChange" olayı herhangi bir yerde yakalanmadığı için. – David
Cevabımı güncelledim (yorum için çok uzun sürdü). –
Shorthand. Yakaladım. Tam olarak aradığım şey bu. ** Çok teşekkürler. ** Resmi Angular2 dokümantasyonu hala eksik, anlaşılabilir. – David