Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

161
Views
¿Por qué mis estilos de clase no se aplican a los elementos creados dinámicamente? angularjs

Mi pregunta es simple; ¿Por qué mis estilos de clase no se aplican a los elementos creados dinámicamente?

Estoy creando una barra de búsqueda aquí donde genero un resultado coincidente de li per y lo agrego a mi ul. Cuando inspecciono la página, veo que las clases se aplican correctamente a los li, pero los estilos de la clase en sí no están presentes. Codifiqué un li de prueba y tenía los estilos esperados. ¿Qué me estoy perdiendo aquí para que mis estilos se apliquen a estos elementos generados dinámicamente? ¿Seguramente no tengo que asignar todos los estilos para los li en mi texto mecanografiado? Cualquier explicación sería genial, ¡gracias a todos! (:

Mi HTML:

 <div class="section"> <h2>Step 1: Choose an Identity Provider (IDP)</h2> <div class="search"> <input class="focusable" (focusout)="handleFocusOut()" (input)="debounce(search, 300, $event)" placeholder="Select Identity Provider" autocomplete="off" /> <i class="icon fas fa-search"></i> <ul id="search-options"> <li class="focusable testing">IMG Salesforce</li> </ul> </div> <!-- <i class="fa fa-plus"></i>--> </div>

Mi scss:

 .section { ... .search { position: relative; width: 300px; .icon { position: absolute; right: 5px; top: 3px; } input { width: 300px; } ul { color: red; li { cursor: pointer; &:hover { background-color: grey; color: red; } .testing { cursor: pointer; &:hover { background-color: grey; color: red; } } } } } }

Mi TS:

 let ul = document.getElementById('search-options'); this.displayServices.forEach((service) => { let li = document.createElement('li'); li.classList.add('focusable', 'testing'); li.addEventListener('focusout', this.handleFocusOut); const img = document.createElement('img'); img.src = this.getImgUrl(service); img.width = 20; img.height = 20; img.style.margin = '0 10px'; li.innerHTML = `${service.name}`; li.style.display = 'flex'; li.style.alignItems = 'center'; li.style.border = '.5px solid black'; li.style.padding = '8px 0'; li.prepend(img); ul.appendChild(li); });
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Es difícil ser preciso sin ver todo el tamal, pero por lo general debería obtener sus datos en el archivo .TS y enviarlos directamente a la vista. Su vista debería estar creando esos elementos sobre la marcha. No se muestran en la respuesta aquí los estilos en línea que estaba agregando a la imagen y la etiqueta LI, solo hágalos en CSS.

Algo como esto:

TS:

 this.someService.getData.subscribe(displayServices => { this.displayServices = displayServices; })

HTML:

 <div class="section"> <h2>Step 1: Choose an Identity Provider (IDP)</h2> <div class="search"> <input class="focusable" (focusout)="handleFocusOut($event)" (input)="debounce(search, 300, $event)" placeholder="Select Identity Provider" autocomplete="off" /> <i class="icon fas fa-search"></i> <ul id="search-options"> <li *ngFor="service in displayServices" class="focusable testing" (focusout)="handleFocusOut($event)"> <img [src]="getImgUrl(service)" /> {{service.name}}</li> </ul> </div> <!-- <i class="fa fa-plus"></i>--> </div>
about 4 years ago · Juan Pablo Isaza Report

0

las clases se aplican correctamente a los li, pero los estilos de la clase en sí no están presentes

Si se refiere a las clases focusable y testing , no las veo en su SCSS.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!