2017-04-17 60 views

回答

3

看一看demo-app例如https://github.com/angular/material2/tree/master/src/demo-app/progress-spinner

您需要綁定到[color]財產。

然後在您的代碼中,您可以根據您的百分比值保留根據需要動態更改顏色的邏輯。 e.g:

模板:

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

功能getColor()樣本:

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

你需要在你的自定義材質的調色板來定義顏色。

UPDATE:

重要通知您'_red_''_green_'顏色:

進度微調的顏色。可爲原發性,口音,或警告

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; 
    } 

所以getColor()變得像說:

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

如果你不快樂與預生成主題,任何顏色比您必須創建我們自己的調色板,請參閱https://material.angular.io/guides瞭解更多詳情

+1

'color ='red'','[color] ='red'',[color] ='functionThatReturnsColor()',它們都不起作用。它只接受三種預定義的「主要,重音,警告」顏色之一。 –

+0

您的GitHub頁面不會添加任何內容。例如,你如何使它紅色? –

+0

@SaeedNeamati,這聽起來像是另一個問題;)那是第一,第二我只是想知道爲什麼你會投票答案沒有理由。問題是'如何在Angular 2 Material 2中綁定md-progress-spinner的顏色?',並且初始答案與使用[color]屬性一樣簡單。 – Kuncevic