Comment puis-je changer le corps de la classe par l'intermédiaire d'un tapuscrit de classe (angular2)
Comment puis-je changer le corps de la classe via le composant racine?
@Component({
selector: "app",
directives: [ROUTER_DIRECTIVES],
template: `
<section class="header">
<h1>App</h1>
<router-outlet></router-outlet> `
})
- Vous souhaitez ajouter/supprimer une classe CSS à l'
<body>
tag? - oui, lorsqu'un utilisateur coché une case à cocher je veux changer mon style de la page. Donc je veux changer la classe de la balise body.
- Double Possible de Angulaire 2.x lier la classe sur le corps de la balise
Vous devez vous connecter pour publier un commentaire.
Ici, vous pouvez simplement utiliser le JavaScript natif dans la Angular2 composant à modifier la classe de la
<body>
tag:-D'une façon qui ne dépend pas directement de manipulation du DOM est, pour faire de la
<body>
balise de l'application de l'élément en utilisantbody
comme un sélecteur et l'utilisation d'accueil de liaison de mise à jour de l'application des éléments des classes.template: '<button (click)="someField = !someField">toggle</button>'
Body
composant à faire? Juste l'ajoutproviders
àToggle
, le composant que vous bootstrap Angulaire avec, ne pas faire n'importe quoi. Vous aussi vous ne pouvez joindre le composant racine à la balise body.body
le sélecteur?AppComponent
). Il n'y a aucun moyen de le faire sur n'importe quel autre composant.selector: 'app-root'
, Si je change debody
ça va fonctionner?<body>
le contenu de la balise sera purgée lors de votreAppComponent
obtient initialisé. Donc si vous avez des balises de script ou d'autres contenus à l'intérieur de<body>
, vous devez déplacer ces quelque part d'autre ou utiliser une autre approche pour définir la classe sur<body>
.Toujours à la recherche d'une meilleure solution, voici ma solution actuelle:
Dans le cas où quelqu'un a besoin d'ajouter et de supprimer la classe de corps seulement lorsqu'un composant est actif, il peut être fait comme ci-dessous. Dans mon cas précis, je voulais ajouter le "de la page de destination" classe uniquement lorsque l'utilisateur des terres sur la Page d'Accueil (point de Vue) et de supprimer la classe lorsque l'utilisateur accède à d'autres points de vue:
je resove il par l'utilisation de routage comme ceci
-ajouter à la racine de l'application composant ce code :
et le changement du corps:
vous avez besoin pour l'injecter dans le constractor:
Utilisez code ci-dessous.
JS: