2015-12-30 3 views
0

Я пытаюсь создать индикатор выполнения, значение прогресса которого вычисляется с помощью простой функции в файле углового контроллера, а затем отправляется в элемент 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> 

Проблема символ "%" в упр. 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

Был бы благодарен за помощь в решении этой проблемы. С уважением

+0

Использовать значение ASCII .... –

+1

Не слишком знакомы с 'ng-style', но вы пробовали' ctrl.progressValue = 'width:' + installmentProgressBarLength + '%' 'вместо' ctrl.progressValue = 'progresValue = {width: '+ installmentProgressBarLength +'%} '' –

+0

Да, я тоже пытался написать это так. К сожалению, это не сработало. –

ответ

1

Вам нужно изменить две вещи, чтобы заставить их работать. При установке переменной в JS, вы должны установить его непосредственно к объекту:

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

Вторая часть меняется связыванию:

ng-style="ctrl.progressValue" 

Обратите внимание, что нет никаких фигурных скобок вокруг значения. Это потому, что то, что вы действительно хотите передать в ng-style, является объектом, а не представлением JSON этого объекта.

Смежные вопросы