0
votes

Comment changer cette manipulation corporelle avec la manipulation de la section en angulaire?

Nous essayons de modifier les identifiants CSS basés sur le temps. Le point est que, actuellement, il manipule le corps. Comment pouvons-nous le modifier en une manipulation de la section?

pièce angulaire forte> p> xxx pré>

html fort> p>

document.body.id = "b"+int;  


0 commentaires

3 Réponses :


0
votes

document.getelementByID ("div_top1"). setattribute ("id", "div_top2");

Vous pouvez utiliser cela pour modifier la section ID de section.


3 commentaires

Il y a une section avec classe sur laquelle il devrait être mis en œuvre.

alors qu'est-ce que div_top1 ou ("id", "div_top2"); dans votre code? Ça a l'air autre chose.


Ce n'est pas une bonne solution en angulaire, vous ne devriez pas rechercher le DOM de cette manière en angulaire.


@benshabatnoam alors comment la meilleure solution sera-t-elle pour l'angulaire?



0
votes

Vous pouvez le faire grâce à la fonctionnalité de visionnage angulaire

dans votre HTML: p> xxx pré>

dans votre composant TS Fichier P>

import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';
// ....
export MyComponernt implement AfterViewInit {
    // ....
    @ViewChild('foo') foo: ElementRef;
    // ....
    ngAfterViewInit(): void {
        // this is how you manipulate element id properly thanks to angular viewChild feature
        this.foo.nativeElement.id = 'something';
    }
    // ....
}


2 commentaires

Merci pour votre réponse, je vais le tester.


La propriété de NativeLement est indéfinie.



1
votes
  1. Ajouter un variable de référence de modèle dans votre modèle pour la section Tag: XXX

  2. Ajouter un @ViewChild Decoratored Variable dans le fichier TS du composant pour obtenir cet élément: XXX

  3. Vous pouvez maintenant l'utiliser comme ceci dans le fichier TS du composant: XXX

    Voir cette simple Démo

    Mise à jour :

    Notez que vous utilisez Fonction FUNC () , cela vous entraînera un problème de précaution avec l'utilisation de Ceci comme composant objet. Une façon de résoudre ce problème consiste à utiliser lid fonction: xxx

    mise à jour de la démonstration pour le montrer en action.


6 commentaires

Merci beaucoup. Je vais vérifier :)


Il dit que NativeLement est indéfini.


Qu'est-ce qui peut le causer?


Je suppose que vous avez fait quelque chose de mal, examine de plus près la mise en œuvre et la démo. Assurez-vous que votre nom # est égal au @viewchild ('nom') et que le nom de la variable de menu de visualisation est celui que vous essayez de référencer comme ceci.name.Name.Name.NATIVELEMENTE


J'ai copié le code de votre réponse uniquement à l'intérieur de composant.TS et HTML. Vérifié une fois de plus. Tout est pareil.


Maintenant, je comprends pourquoi cela ne fonctionne pas pour vous. Il s'agit d'une question d'étendue en raison de la fonction Func () ... , je vais mettre à jour ma réponse pour vous aider avec ça