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

379
Views
¿Cómo vincular el color de md-progress-spinner en Angular 2 Material 2, a un color personalizado?

Quiero usar md-progress-spinner para mostrar el porcentaje del trabajo realizado, pero quiero cambiar el color del trazo de rojo a verde dinámicamente según el porcentaje.

¿Cómo puedo hacer eso?

 <md-progress-spinner class="number" mode="determinate" [value]="today?.MemorizationPercent" [style.background]="today?.MemorizationStateColor"> </md-progress-spinner>
about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Después de leer los comentarios mientras buscaba una solución a mi propio problema, pude encontrar la siguiente solución. No es bonito, pero hasta que abran el atributo de color para aceptar más de tres colores, esto servirá como una solución temporal.

La rueda giratoria es un círculo SVG, por lo que sus propiedades se pueden modificar a través de CSS. Puede cambiar el color del círculo con trazo y el fondo del círculo con relleno .

En el HTML:

 <mat-spinner class="very-pink"></mat-spinner>

En el CSS:

 .very-pink::ng-deep circle { stroke: fuchsia; }

Aquí hay un enlace a un stackblitz que lo demuestra.

EDITAR: Gracias a ConquerorsHaki por señalar esto: /deep/, >>> y ::ng-deep han quedado en desuso . Por el momento todavía funcionan, y uno esperaría que se proporcione un script de migración antes de que lo eliminen. Dicho esto, esta no es una solución óptima.

about 4 years ago · Santiago Trujillo Report

0

Eche un vistazo al ejemplo demo-app https://github.com/angular/material2/tree/master/src/demo-app/progress-spinner

Debe enlazar a la propiedad [color] .

Luego, en su código puede mantener la lógica que cambiará el color dinámicamente según lo necesite en función de su valor porcentual. p.ej:

Modelo:

 <md-progress-spinner class="number" mode="determinate" [value]="today?.MemorizationPercent" [color]="getColor(today?.MemorizationPercent)"> </md-progress-spinner>

Muestra de la función getColor() :

 getColor(percentage) { return percentage > 50 ? '_red_' : '_green_'; }

Debe definir los colores en su paleta de materiales personalizada.

ACTUALIZAR:

aviso importante sobre '_red_' y '_green_' :

El color de la rueda de progreso. Puede ser principal, acentuar o advertir

Según el código fuente progress-spinner https://github.com/angular/material2/blob/master/src/lib/progress-spinner/progress-spinner.ts#L110

 /** The color of the progress-spinner. Can be primary, accent, or warn. */ @Input() get color(): string { return this._color; } set color(value: string) { if (value) { this._renderer.removeClass(this._elementRef.nativeElement, `mat-${this._color}`); this._renderer.addClass(this._elementRef.nativeElement, `mat-${value}`); this._color = value; }

Entonces getColor() se vuelve como decir:

 getColor(percentage) { return percentage > 50 ? 'accent' : 'warn'; }

Si no está satisfecho con los colores de las paletas de temas preconstruidos, debe crear los nuestros propios, consulte https://material.angular.io/guides para obtener más detalles.

about 4 years ago · Santiago Trujillo 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!