es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Componente de calificación dinámica de Ngx-Bootstrap

Como trabajo con este increíble componente, llegué a un punto en el que necesito tener una sección de calificación. Esta sección de calificación, por defecto, tiene 5 estrellas y un valor numérico proviene de una llamada a la API.

Necesito que esas estrellas estén llenas de color amarillo. Por ejemplo:

Si el valor de la estrella es 3:

[checked] [checked] [checked] [] []
*siendo las estrellas amarillas y la matriz vacía el resto de las 5 estrellas

Mientras buscaba una solución, encontré que ng-starring tiene esta característica. Tiene un selector de “Valor” que puedes integrar con ngFor.

El software Ngx-bootstrap de valor no proporciona esta funcionalidad.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Creando una sección de calificación con Ng-Starrating

    Como experto en TI especializado en CSS, Angular y ngx-bootstrap, has llegado a un punto en el que necesitas agregar una sección de calificación a tu proyecto. La sección de calificación debe tener 5 estrellas, y la cantidad de estrellas llenas de color amarillo debe provenir de una llamada a la API.

    Afortunadamente, encontraste una solución a tu problema en forma de ng-starrating. Este paquete proporciona un selector de Value que puedes integrar con ngFor para crear una sección de calificación con el número especificado de estrellas llenas.

    Desafortunadamente, ngx-bootstrap no proporciona esta función. Por lo tanto, puedes usar ng-starrating para lograr el resultado deseado.

    Aquí tienes un ejemplo rápido de cómo puedes implementar una sección de calificación con ng-starrating:

    <ng-starrating [readonly]="true" [initialvalue]="3">
      <ng-template let-fill="fill" let-index="index">
        <span class="star" *ngif="fill">★</span>
        <span class="star" *ngif="!fill">☆</span>
      </ng-template>
    </ng-starrating>
    

    En el ejemplo anterior, vinculamos la propiedad de entrada readonly a true ya que no queremos que el usuario interactúe con las estrellas. La propiedad de entrada [initialValue] se establece en 3 para mostrar que 3 de las 5 estrellas deben estar llenas de color amarillo.

    En el elemento ng-template, creamos dos elementos span para representar las estrellas. Las directivas *ngIf se utilizan para determinar si se debe mostrar una estrella llena () o una estrella vacía () según la variable fill.

    Finalmente, puedes dar estilo a las estrellas llenas con un color amarillo agregando el siguiente código CSS:

    .star {
      font-size: 20px;
      color: #aaa;
    }
    
    .star.filled {
      color: yellow;
    }
    

    Al agregar la clase filled al elemento span que representa una estrella llena, puedes aplicarle un color amarillo.

    ¡Eso es todo! Con ng-starrating, puedes crear fácilmente una sección de calificación con un número especificado de estrellas llenas.

Comments are closed.