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

518
Vistas
¿Cómo podemos inyectar una directiva de atributo al elemento DOM (del archivo ts) en angular?

¿Es posible agregar una directiva al elemento DOM usando setAttribute()?

Estaba tratando de implementar arrastrar y soltar en mi componente con arrastrar y soltar material. está funcionando, cuando lo intenté así

 <div class="example-boundary"> <div class="example-box" #test cdkDragBoundary=".example-boundary" cdkDrag> I can only be dragged within the dotted container </div>

según tengo entendido, la funcionalidad de arrastre funciona a través de la directiva de atributo cdkDrag .

Cuando traté de agregar esta directiva a través de setAttribute(), que no funciona

 constructor(private _renderer: Renderer2, private _elRef: ElementRef) {} ngAfterViewInit(): void { let requiredElem = this._elRef.nativeElement.querySelectorAll('.example-box'); this._renderer.setAttribute(requiredElem[0], 'cdkDrag', ''); }

Cuando compruebo el DOM, parece que se agrega cdkDrag. ingrese la descripción de la imagen aquí

¿Alguien que me ayude a resolver esto? gracias de antemano.

Editar

Implementé esa funcionalidad de arrastre en el elemento iframe usando jquery ( https://stackblitz.com/edit/angular-ivy-syoi3w?file=src/app/iframe/iframe.component.ts ) este ejemplo de slackBlitz enfrenta un problema con jqueryUi liberación

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

0

La respuesta simple es no, no puedes hacer esto en Angular. Lo que está buscando era posible en el antiguo angular.js, mediante el uso del servicio $compile . Por ejemplo:

 element.setAttribute('cdkDrag', ''); $compile(element)($scope);

Pero, por varias buenas razones, el equipo de Angular decidió dejar de admitir enfoques tan dinámicos en el nuevo marco.

En las primeras versiones RC de Angular, hubo algunas soluciones/trucos basados en DynamicComponentLoader que permitirían lograr una compilación de directivas dinámicas en elementos DOM, pero más tarde DynamicComponentLoader también quedó en desuso y luego se eliminó.

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