我在Angular 2中有一個名爲selectedState的表達式。表達式評估爲const內的五個屬性之一。根據點擊它改變類名稱。Angular 2 ngClass在對照條件檢查時未評估我的表達
<button
class="button button--secondary"
[ngClass]="selectedState">
<div class="u-maxX u-centerX">
<span>Button</span>
</div>
</div>
</button>
「selectedState」將返回被點擊的項目;默認,正在懸停,處於活動狀態,禁用和加載。
例如如果我點擊是懸停它將返回
`<button
class="button button--secondary is-hovering">
<div class="u-maxX u-centerX">
<span>Button</span>
</div>
</div>
</button>`
現在,當我改變像這樣的語法。
<button
class="button button--primary"
[ngClass]="{selectedState: type === 'primary'}">
<div class="u-maxX u-centerX">
<span>Button</span>
</div>
</button>
現在「selectedState」的計算結果爲字符串「selectedState」,而不是被動態的,不斷變化的像以前一樣。如何在檢查類型==='primary'時保持動態行爲?我需要檢查類型,因爲頁面上有幾種類型。我需要每種類型隻影響一個按鈕,否則會影響頁面上的所有按鈕。
*「」selectedState「每次評估爲」selectedState「* - 這就是對象文字的工作方式!您是否考慮過在類中的getter方法中構建適當的對象,而不是試圖在模板中完成所有工作? – jonrsharpe
在第一個示例中,selectedState評估爲1/5選項。例如。默認,懸停,活動,禁用和加載。在第二個評估中,它只是「selectedState」。 – London804
您可能需要在此處添加有關預期行爲的更多信息。當你輸入==='primary''時,你想讓它成爲'class =「按鈕按鈕 - primary selectedState」'? –