Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

558
Vistas
La propiedad 'X' es privada y solo se puede acceder a ella dentro de la clase 'xyzComponent'

Estoy tratando de crear una aplicación angular2 para producción para la que estoy siguiendo este blog . Después de mi compilación exitosa de ngc cuando se lleva a cabo la compilación de tsc , se genera el siguiente error que se muestra en la imagen:

Después de buscar por un tiempo, encontré este blog que explica el problema en la sección "La propiedad de contexto" que no puedo entender correctamente, puede que le dé una buena idea de lo que está sucediendo mal. Básicamente, cuando hacemos que una variable sea privada, obtenemos "ERROR: la propiedad es privada y solo se puede acceder a ella dentro de la clase" .

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Para un componente determinado, todos sus miembros (métodos, propiedades) a los que accede su plantilla deben ser públicos en el escenario de compilación AOT. Esto se debe al hecho de que una plantilla se convierte en una clase TS. Una clase generada y un componente son 2 clases separadas ahora y no puede acceder a miembros privados entre clases.

En resumen: no puede acceder a miembros privados en sus plantillas si desea utilizar la compilación anticipada.

Para una mejor explicación https://github.com/angular/angular/issues/11422

over 4 years ago · Santiago Trujillo Denunciar

0

Tal vez otra respuesta aún más simple es:

Chicos, por favor no llamen a métodos privados, campos o propiedades desde el HTML :)


PD: al compilar el código *.ts a *.js , AOT se niega a conectar miembros no públicos con la plantilla HTML .

Y "sí", esto hará que su tubería de compilación falle: D

over 4 years ago · Santiago Trujillo Denunciar

0

Obtuve esto cuando declaré inyectables privados en el constructor:

 constructor(private service: SpecificObjectService) { }

Y los usé en la plantilla:

 *ngFor="let pd of service.listSpecificObject "

La solucion es:

 constructor(public service: SpecificObjectService) { }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda