Ich importiere derzeit eine Drittanbieter-Komponente. Für meinen Anwendungsfall muss ich diese spezifische Komponentenvorlage überschreiben.Override/delete Drittanbieter-Komponente Vorlage
Da dies eine Drittanbieter-Komponente ist und über das npm-Paket importiert wird, möchte ich die Komponente nicht ändern, sodass ich sie nicht jedes Mal aktualisieren muss, wenn das Paket aktualisiert wird.
Gibt es eine Möglichkeit, die Vorlage einer anderen Komponente zu überschreiben?
Ich weiß, Sie können <ng-content>
verwenden, wenn Sie ein Element injizieren möchten. Aber hier ist nicht durchführbar.
Die html ist so etwas wie diese:
<third-party-component [items]="items" [example]="example">
Der Controller so etwas wie diese:
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'
];
}
Gibt es eine Möglichkeit, die Vorlage angeben kann ich für <third-party-component>
will, ohne die spezifische Komponente Bearbeitung Erklärung? Oder sogar nur erweitern?
Danke für die Mühe. Ich habe eine einfache Lösung gefunden, indem ich nur die Klasse erweitert habe. Überprüfe meine Antwort. –
@JoelAlmeida Funktioniert gut, ich behalte es im Hinterkopf (; Es ist eine bessere Lösung als das, was ich angeboten habe, aber ich denke, Reflect Metadata könnte verwendet werden, wenn Sie keinen Zugriff auf TS-Dateien haben ... – Sasxa
Ich stimme zu rate Reflect ist die einzige Lösung, wenn Sie keinen Zugriff auf die Klasse –