J'essaie d'étendre le composant matériau angulaire pour donner CSS personnalisé. Je souhaite utiliser le même composant mais juste changer le CSS. Si son thème, je peux changer les propriétés mais je veux changer le style qui est codé en dur dans le composant. Donc, j'essaie d'étendre le composant. Voici ce que j'ai fait.Extension composant angulaire (seulement décorateur)
@Component({
selector: 'my-tab-nav-bar',
styles: [``] // custom css here
})
export class TabNavBarComponent extends MdTabNavBar {
}
Cet échec échoue en tant que modèle n'est pas spécifié. Donc, j'ajoute aussi un template. Donc, je copie coller le modèle.
@Component({
selector: 'my-tab-nav-bar',
template: `<div class=\"mat-tab-links\">
<ng-content></ng-content>
<md-ink-bar></md-ink-bar> </div> `,
styles: [``] // custom css here
})
export class TabNavBarComponent extends MdTabNavBar {
}
Maintenant, le problème est qu'il ne sait pas ce qui est md-ink-bar
et sa non exportés en angle. Y at-il de toute façon je peux étendre juste en changeant le css.
Ne pouvez-vous pas simplement ajouter votre propre feuille de style globale qui ajoute et remplace les styles intégrés? De cette façon, vous n'avez pas besoin de créer un nouveau composant juste pour changer de CSS. – Raven
True. Mais il y a tellement de changements, le fichier styles.scss entier est rempli de styles '! Important '. Nous allons l'utiliser dans de nombreux projets, pensé que je vais juste étendre les composants de base et avoir nos propres composants. Je ne m'attendais pas à ce que ce – Skeptor
Angular Material ne puisse pas utiliser n'importe quel '! Important' dans leurs styles. Votre style ne l'annulera-t-il pas automatiquement s'il s'agit de la dernière définition chargée? – Raven