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

153
Vistas
Llame a un método mecanografiado desde html escrito dentro del componente mecanografiado

Tengo una ventana emergente con 2 botones, Actualizar y Eliminar. Cuando se presiona el botón Actualizar, quiero que desaparezca la ventana emergente inicial y que aparezca una nueva ventana emergente con los mismos campos pero editable con otros 2 botones en la parte inferior, Confirmar y Eliminar.

Quiero configurar el código para la ventana emergente Actualizar en un método separado y llamarlo desde el botón HTML cuando se presiona el botón Actualizar

¿Cómo llamo al método deseado (myFunction) desde el HTML escrito dentro del componente TypeScript en el componente del botón?

 private initMap(): void { this.map = L.map('map', { center: this.centroid, zoom: 2.8 }); this.tiles = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { minZoom: 2.8, attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>' }); this.tiles.addTo(this.map); this.powerPlantService.getAll().subscribe((data: any)=>{ console.log(data); this.geoJsonFeature = data; L.geoJSON(data, {onEachFeature: myOnEachFeatureMethod}).addTo(this.map) }) function myOnEachFeatureMethod(feature:any, layer:L.GeoJSON) { layer.bindPopup( "Power Plant Id: " + feature.properties.xxx + "<br>Power Plant Name: " + feature.properties.xxxx + '<div style="text-align:center"> '+ //below in the button i want to call the myFunction method. How do I do that? '<br><button type="button" class="btn btn-primary" style="margin-right: 5px" data = "' + feature.properties.xxx + '" ' + '>Update</button>' + '<button type="button" class="btn btn-danger" style="margin-left: 5px" data = "' + feature.properties.xxxx + '" ' + '>Delete</button>' + '</div>' ); } } myFunction(layer: any) { console.log("Yeet"); layer.bindPopup("Yeet"); }

Esta es la ventana emergente que se muestra cuando se hace clic en el pin del mapa

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Para pasar mensajes al componente desde el evento de clic de botón, usaremos el archivo javascript normal y lo incluiremos en angular.json .

También necesitamos rxjs declarados en el objeto de ventana. Sin embargo, rxjs, que está instalado en Angular a través de npm, no lo está, por lo que incluimos un archivo de secuencia de comandos cdn en el encabezado del archivo index.html .

src/index.html

 <!DOCTYPE html> <html lang="en"> <head> .... <script type="text/javascript" src="https://unpkg.com/rxjs@%5E7/dist/bundles/rxjs.umd.min.js"></script> </head> <body> <app-root></app-root> </body> </html>

Cree un archivo custom.js dentro de la carpeta /src/assets/js y cree un nuevo sujeto RxJS y también declare la función que desea llamar. Dentro de esa función, simplemente llame next sujeto para emitir un nuevo evento/mensaje.

src/assets/js/personalizado.js

 var my_custom_subject = new rxjs.Subject() function myFunction() { my_custom_subject.next('hello from custom') }

Para procesar este script dentro de su aplicación, puede incluirlo también en la etiqueta principal o incluirlo dentro de la matriz de scripts en el archivo angular.json . Es la etiqueta principal o está en el archivo de configuración; de lo contrario, intentará declarar my_custom_subject dos veces.

angular.json

 { ... "projects": { YOUR_PROJECT_NAME: { "architect": { "build": { "options": { "scripts": [ "src/assets/js/custom.js" ] } } } } } }

Dentro de su componente, declare una const con el mismo nombre que el sujeto que creó en el archivo custom.js . Dentro de ngOnInit suscríbase al Observable para escuchar los eventos.

 import { Component, OnDestroy, OnInit } from '@angular/core'; import { Subject } from 'rxjs'; declare const my_custom_subject: Subject<any> @Component({ selector: 'app-home', templateUrl: './home.component.html', styleUrls: ['./home.component.css'], }) export class HomeComponent implements OnInit, OnDestroy { private subcription: Subscription; ... ngOnInit(): void { this.subcription = my_custom_subject.subscribe(data => console.log('subscription', data)) } ngOnDestroy(): void { this.subcription.unsubscribe(); } ... }

Esto le permitirá llamar a myFunction declarado con javascript regular que pasará un mensaje a su componente. Al suscribirse, en realidad está escuchando los eventos de clic.

about 4 years ago · Juan Pablo Isaza 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