Non capisco davvero come funziona il binding degli oggetti, quindi se qualcuno potrebbe spiegare se posso usare @Input() all'interno di una classe base, o meglio: decoratori ed ereditarietà. Ad esempio se ogni modulo deve ricevere un cliente Ho una classe di base:@Input e altri decoratori ed ereditarietà
export class AbstractCustomerForm{
@Input() customer;
...
}
e quindi estendo questa classe in una componente reale:
export AwesomeCustomerForm extends AbstractCustomerForm implements OnInit{
ngOnInit(){
if(this.customer)
doSomething();
}
}
ma questo non funzionerà, il Cliente non vengono mai impostare :(
Quindi devo scrivere ogni ingresso comune in ciascuna delle forme cliente :( – Silencer
Yup, spero che migliorano questo alla fine ma è un argomento complicato perché ha bisogno di essere compatibile con Dart e JS e non deve impedire la compilazione per applicazioni enormi (per esempio di Google intern.) Probabilmente non qualcosa che sarà corretto per 1.0. –
È bruciato da questo - errore piuttosto criptico anche i messaggi, lamentandosi di un campo indefinito, hanno scoperto che i decoratori non sono ereditati a meno che non ci siano decoratori nella classe dei bambini. Sembra che le informazioni dei decoratori siano state aggiunte alla definizione della classe, ignorando quelle della superclasse, e la ricerca di decoratori non segue la catena. In ogni caso, l'unico modo è di COPY tutte le proprietà decorate dalla superclasse alla classe bambino. –