Aktualnie importuję komponent innej firmy. Dla mojego przypadku użycia muszę nadpisać ten konkretny szablon komponentu.Przesłanianie/rozszerzanie szablonu komponentu innej firmy
Ponieważ jest to komponent firmy trzeciej i jest importowany za pośrednictwem pakietu npm, nie chcę zmieniać składnika, więc nie muszę go aktualizować za każdym razem, gdy pakiet jest aktualizowany.
Czy istnieje sposób nadpisania szablonu innego komponentu?
Wiem, że możesz użyć <ng-content>
, jeśli chcesz wstrzyknąć jakiś element. Ale tutaj nie jest opłacalne.
HTML jest coś takiego:
<third-party-component [items]="items" [example]="example">
Kontroler jest coś takiego:
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'
];
}
Czy jest jakiś sposób mogę określić szablon chcę dla <third-party-component>
bez edycji danego elementu deklaracja? A może nawet rozszerzyć go?
Dzięki za wysiłek. Wymyśliłem proste rozwiązanie, rozszerzając tylko klasę. Sprawdź moją odpowiedź. –
@JoelAlmeida Działa ładnie, będę o tym pamiętał (jest to lepsze rozwiązanie niż to, co oferowałem, ale myślę, że metadane Reflect mogą być użyte, jeśli nie masz dostępu do plików TS ... – Sasxa
Zgadzam się. odgadnąć Odbicie jest jedynym rozwiązaniem, jeśli nie masz dostępu do klasy –