Attualmente sto importando un componente di terze parti. Per il mio caso d'uso ho bisogno di sovrascrivere quel modello di componente specifico.Ignora/estendi il modello di componenti di terze parti
Poiché si tratta di un componente di terze parti e importato tramite il pacchetto npm, non desidero modificare il componente in modo da non doverlo aggiornare ogni volta che il pacchetto viene aggiornato.
C'è un modo per sovrascrivere il modello di un altro componente?
So che è possibile utilizzare <ng-content>
se si desidera iniettare qualche elemento. Ma qui non è fattibile.
il codice HTML è qualcosa di simile:
<third-party-component [items]="items" [example]="example">
Il controller è qualcosa di simile:
import {THIRD_PARTY_DIRECTIVES} from 'ng2-select/ng2-select';
@Component({
selector: 'example-component',
directives: [THIRD_PARTY_DIRECTIVES]
})
export class Example {
private items: Array<string> = [
'whatever', 'whatever2', 'whatever3'
];
}
C'è un modo posso specificare il modello che voglio per <third-party-component>
senza modificare tale componente specifico dichiarazione? O anche solo estenderlo?
Grazie per lo sforzo. Ho trovato una soluzione semplice estendendo solo la classe. Controlla la mia risposta. –
@JoelAlmeida Funziona bene, lo terrò a mente (; È una soluzione migliore di quella che ho offerto, ma suppongo che Reflect Metadata possa essere usato se non si ha accesso ai file TS ... – Sasxa
Sono d'accordo. guess Reflect è l'unica soluzione se non si ha accesso alla classe –