2015-12-30 137 views
0

我正在嘗試創建一個進度條,它使用Angular控制器文件中的簡單函數計算進度值,然後將其發送到html元素中作爲樣式屬性。語法錯誤:不允許在字符串中使用符號「%」

這裏是AngularJS文件中的一部分:

var statusMock = { 
    installmentProgress: { 
      current: '2', 
      outOf: '4' 
     } 
} 
var installmentProgressBarLength = ((statusMock.installmentProgress.current/statusMock.installmentProgress.outOf).toString() * 100); 
ctrl.progressValue = 'progresValue={width:' + installmentProgressBarLength + '%}'; 

這裏是HTML文件的一部分:

<div class="tile-policy-payments__installments-progress__progressbar" > 
    <div class="tile-policy-payments__installments-progress__progressbar_value" ng-style="{{ctrl.progressValue}}"></div> 
</div> 

的問題是CTRL的 「%」 符號。 progressValue定義。它會導致錯誤:

Error: [$parse:syntax] Syntax Error: Token '}' not a primary expression at column 24 of the expression [progresValue={width:50%}] starting at [}]. 

如果我不使用「%」符號一切正常,進度條的但長度不是我所期望的一個。

enter image description here

將是感謝在解決問題的幫助。 Regards

+0

使用ASCII值.... –

+1

對'ng樣式'不太熟悉,但你試過了嗎?ctrl.progressValue ='width:'+ installmentProgressBarLength +'%''而不是'ctrl.progressValue ='progresValue = {width:'+ installmentProgressBarLength +'%}'' –

+0

是的,我也嘗試過這樣寫。不幸的是,它沒有奏效。 –

回答

1

你需要改變兩件事情才能使它工作。 當設置在JS的變量,可以直接將其設置爲一個對象:

ctrl.progressValue = { width: installmentProgressBarLength + '%' }; 

第二部分是改變綁定:

ng-style="ctrl.progressValue" 

注意,有圍繞價值沒有大括號。這是因爲你實際想要傳遞給ng樣式的是一個對象而不是該對象的JSON表示。