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

221
Vistas
¿Cómo envío el contenido secundario desde un componente reutilizable usando @Input?

Usando Angular 12.

Quiero crear un componente de botón reutilizable. Quiero obtener el texto dentro de las etiquetas donde alojo mi componente y luego obtenerlo como una entrada dentro de mi componente.

Dentro de mi home.component.html:

 <app-ui-text-button color="#fe7f2d">Press Me!</app-ui-text-button>

¡Quiero obtener Presioname! texto y enviarlo como entrada a mi componente.

Mi componente:

 @Component({ selector: 'app-ui-text-button', styles: [` .button { padding: 12px 8px; border-radius: 5px; cursor: pointer; } .button:hover { filter: brightness(1.2); } `], template: ` <div class="button" [style.backgroundColor]="color" (click)="onClick($event)">{{ text }}</div> ` } ) export class AppUiTextButtonComponent { // Inputs @Input() text = 'sdfs'; @Input() color = '#619b8a'; // @Input() childContent: ElementRef<any> = new ElementRef(any); // Outputs @Output() clicked = new EventEmitter<any>(); onClick(event: Event) { this.clicked.emit(event); } }

Entonces quiero tomar el texto e insertarlo como variable dinámica dentro de mi div.

Yo he tratado

 @Input() childContent: ElementRef<any> = new ElementRef(any); @Input() text = '';

sin exito. También traté de buscar en línea, pero no obtuve respuestas claras.

Gracias de antemano.

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

0

Método 1: método sencillo

si desea el texto en su componente personalizado. puedes hacerlo como

 <app-ui-text-button color="#fe7f2d" [text]="Press Me!"></app-ui-text-button>

luego el text @Input tendrá Press Me! en tu componente!

Método 2: usando la proyección de contenido

ui-text-button.component.ts

 @Component({ selector: 'app-ui-text-button', styles: [` .button { padding: 12px 8px; border-radius: 5px; cursor: pointer; } .button:hover { filter: brightness(1.2); } `], template: ` <div class="button" [style.backgroundColor]="color" (click)="onClick($event)"> <ng-content></ng-content> <!-- here added this ng-content tag --> </div> ` } ) export class AppUiTextButtonComponent { // Inputs // @Input() text = 'sdfs'; // don't need this anymore with content projection @Input() color = '#619b8a'; // @Input() childContent: ElementRef<any> = new ElementRef(any); // Outputs @Output() clicked = new EventEmitter<any>(); onClick(event: Event) { this.clicked.emit(event); } }

ahora usando este ui-text-button como quieras usar en tu ejemplo

 <app-ui-text-button color="#fe7f2d">Press Me!</app-ui-text-button>
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