J'aimerais faire un commentaire. Mais en raison du manque de réputation j'écris une réponse.
Eh bien, je sais que deux possibilités pour résoudre ce problème.
- Injecter le Document Global. Eh bien, il pourrait ne pas être la meilleure pratique que je ne sais pas si nativescript etc prend en charge. Mais au moins, c'est mieux que de l'utiliser pur JS.
constructeur(@Inject(DOCUMENT) document: Document) {}
ngOnInit(){
c'.document.corps.classList.add('test');
}
Et peut-être même mieux. Vous pourrait injecter le convertisseur ou convertisseur 2 (sur CG4) et ajouter la classe avec le moteur de rendu.
l'exportation de la classe myModalComponent implémente OnDestroy {
constructeur(privé convertisseur: Convertisseur) {
c'.moteur de rendu.setElementClass(document.corps "modal-open', true);
}
ngOnDestroy() {
c'.moteur de rendu.setElementClass(document.corps "modal-open', false);
}
EDIT POUR ANGULAR4:
importer { Composant, OnDestroy, Renderer2 } '@angulaire de base";
l'exportation de la classe myModalComponent implémente OnDestroy {
constructeur(privé moteur de rendu: Renderer2) {
c'.moteur de rendu.addClass(document.corps "modal-ouvert");
}
ngOnDestroy() {
c'.moteur de rendu.removeClass(document.corps "modal-ouvert");
}
1 votes
En fait, si vous travaillez avec des js dans une page html, quel est le problème avec l'utilisation de
document.body.className|classList
?0 votes
Haha si seulement c'était aussi simple :) mais c'est une mauvaise pratique d'accéder directement à dom
0 votes
Vous pouvez écrire un gros wrapper qui sera exécuté plusieurs secondes et qui, à la fin, ajoutera
class
àbody
. Si vous n'avez pas l'intention d'utiliser le rendu du serveur ou le travailleur web, de quoi avez-vous peur ?0 votes
Il n'y a donc pas de meilleure solution que celle-ci ?
7 votes
Je ne comprends pas ces personnes abusives qui rétrogradent et ferment des questions sans raison valable.
0 votes
Je n'ai pas fait de downvote
0 votes
Juste une question, Angular est conçu comme une architecture de composants. Pourquoi faut-il changer le body et non le top component app alors que tout est à l'intérieur ?
0 votes
Je travaille sur une grosse application angular2 et changer le sélecteur Root va impacter beaucoup de code, >Je vais devoir changer beaucoup de code
0 votes
Pourquoi changer la balise body ? Couleur d'arrière-plan ? Classes css de haut niveau "modernizer style" ?
0 votes
Il y a 3 grands exemples pour écorcher ce chat répertoriés ici. (m'a beaucoup aidé)