¿Cómo agregar campos de entrada dinámicamente al hacer clic en el botón en AngularJS?

La tarea es agregar un campo de entrada en la página cuando el usuario hace clic en el botón usando AngularJs.

Pasos:

  • Se crea el componente necesario para la operación (add-inputComponent) .
  • En ese componente, se escribe el archivo html (add-input.component.html) html requerido.
  • En ese HTML, el div principal para los campos de entrada está allí y se crea el botón .
  • Hay un evento (clic) en el botón AGREGAR que redirige a la función definida por el usuario en funcionamiento en add-input.component.ts .
  • En la función definida por el usuario, el método createElement() se usa para crear una división cada vez que el usuario hace clic en el botón y la propiedad innerHTML() se usa para crear un campo de entrada.
  • Luego, el div del elemento creado se agrega al div principal de add-input.component.html mediante el método appendChild() .

A continuación se muestra la implementación de los pasos anteriores:
app.module.ts

// Necessary imports of component is done
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
  
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { AddInputComponent } from './add-input/add-input.component';
  
@NgModule({
  declarations: [
    AppComponent,
    AddInputComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

agregar-entrada.componente.html

<!-- Main div and ADD button is created -->
<center>
  CLICK ON BUTTON TO ADD NEW FIELD
  <div class="showInputField"></div>
  
  <!-- The add() function is called -->
  <button (click)="add()">ADD</button>
</center>

add-input.component.ts

// The class function add() is made that contains
// the necessary code for the action
import { Component, OnInit } from '@angular/core';
  
@Component({
  selector: 'app-add-input',
  templateUrl: './add-input.component.html',
  styleUrls: ['./add-input.component.css']
})
export class AddInputComponent implements OnInit {
  
  constructor() { }
  
  ngOnInit(): void {
  }
  add(){
    let row = document.createElement('div');  
      row.className = 'row';
      row.innerHTML = `
      <br>
      <input type="text">`;
      document.querySelector('.showInputField').appendChild(row);
  }
}

Producción:

  • Antes de hacer clic en el botón:
  • Después de hacer clic en el botón:

Publicación traducida automáticamente

Artículo escrito por taran910 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *