Po przeczytaniu tego section about component interaction - Zauważyłem, że istnieje inny sposób komunikowania się z dzieckiem do rodziców (co nie było tam naprawdę udokumentowane):Angular - nieudokumentowana komunikacja między dziećmi?
Okazuje się, że jeśli Mam klasy nadrzędnej:
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello {{name}}</h2>
<my-item></my-item>
</div>
`,
})
export class App {
name:string;
go1()
{
alert(2)
}
constructor() {}
}
a w składniku dziecięcej - I wstrzyknąć typ parent
w ctor:
@Component({
selector: 'my-item',
template: `
<div>
<input type="button" value='invoke parent method' (click) = "myGo()"/>
</div>
`,
})
class MyItem {
name:string;
private parent1 : App;
myGo()
{
this.parent1.go1() //<--- access is available here
}
constructor(private parent1 : App)
{
this.parent1 = parent1; //<------------ manually, unlike service
this.name = `Angular! v${VERSION.full}`
}
}
Następnie kątowa widzi, że mam spróbować ing, aby wstrzyknąć rodzicielską klasę typu i daje mi do niej dostęp.
Kliknięcie działa oczywiście.
Pytanie:
Obok innych alternatyw, które już znam, jest to udokumentowane w dowolnym miejscu? czy jest to tylko cecha, że nie mogę liczyć na to
Jeśli nie jest to udokumentowane, nie będę na nim polegać. Można go zmienić w następnym wydaniu drugorzędnym, ale nie jest on wymieniony jako zmiana zerwania ... – fredrik