46 votes

Que signifie _ngcontent-c# dans Angular ?

Je suis en train d'apprendre Angular 2/4 et je vois les balises html avec les attributs générés par ng : _ngcontent-c0, _ngcontent-c1...

Que signifie cette valeur c ?

33voto

Maximus Points 1342

_ngcontent-c# sont ajoutés lorsque vous utilisez ViewEncapsulation.Emulated - qui est par défaut. Angular utilise ces attributs pour cibler des éléments spécifiques avec les styles. Le nombre c est une sorte d'identifiant unique du composant hôte. Par exemple, si vous avez deux composants avec les modèles suivants :

ComponentA
<span></span>
<comp-b></comp-b>

ComponenB
<h1></h1>

Angular marquera tous les éléments avec des styles à l'intérieur du composant. A comme _ngcontent-c0 et tous les éléments avec des styles à l'intérieur du composant B avec _ngcontent-c1 :

<comp-a>
    <span _ngcontent-c0></span>
    <comp-b _ngcontent-c0>
        <h1 _ngcontent-c1></h1>
    </comp-b>
</comp-a>

0 votes

Donc le composant racine sera 0 et les composants imbriqués seront 1...n ?

1 votes

Je ne suis pas sûr d'aimer, de vouloir ou d'avoir besoin de cela. _ngcontent.. Comment l'éteindre ?

0 votes

@TomStickel, quoi encapsulation de la vue que vous utilisez ? Si vous utilisez Native ou None, Angular ne devrait pas ajouter ces attributs

16voto

asifaftab87 Points 126

Vous pouvez le désactiver en ajoutant l'import ci-dessous à votre composant,

import {ViewEncapsulation} from '@angular/core';

import { Component, OnInit } from '@angular/core';
import { ViewEncapsulation } from '@angular/core';

@Component({
  selector: 'app-dashboard',
  templateUrl: './dashboard.component.html',
  styleUrls: ['./dashboard.component.css'],
  encapsulation: ViewEncapsulation.None
})
export class DashboardComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

veuillez noter cette ligne :

 encapsulation: ViewEncapsulation.None

ne pas ajouter d'attribut dynamique à partir d'angular

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X