Как изменить непрозрачность с помощью ngstyle?
У меня в контроллере пока:
$scope.currentPage = 0;
Теперь, без какого-либо дополнительного кода (метод) в контроллере, я хочу установить непрозрачность 0.4
на изображение, если currentPage ==0
Итак, я написал:
<div ng-controller="ctrlRead">
<div class="pagination no-margin ">
<ul>
<li ng-class="{disabled: currentPage == 0}">
<a href=""
ng-class="{disabled: currentPage == 0}">
<i class="icon-fast-backward"
ng-style="{opacity : (currentPage == 0)?'0.4':'1'}">
</i>
</a>
</li>
</ul>
</div>
</div>
Но я получаю ошибку:
Unexpected next character at columns 29-29 [?] in expression [{opacity : (currentPage == 0)?'0.4':'1'}]
Fiddle
Я что-то пропустил?
Спасибо,
[EDIT]
Я могу написать ng-style="myOpacity"
и в контроллере:
$scope.myOpacity = {
'opacity': ($scope.currentPage == 0)?0.4:1
};
Но он требует дополнительного кода в контроллере
Ответы
Ответ 1
Обновление. Начиная с версии 1.1.5, Angular поддерживает тройной оператор в шаблонах.
Angular не поддерживает тройной оператор в шаблонах. Однако вы можете использовать троянский оператор бедных:
ng-style="{opacity : ((currentPage == 0) && '0.4') || '1'}">
Ответ 2
Собственно, у AngularJS 1.1.5 есть тройной оператор (см. https://github.com/angular/angular.js/commit/6798fec4390a72b7943a49505f8a245b6016c84b), поэтому, если вы используете версию >= 1.1.5, вы должны иметь возможность использовать:
ng-style="{'opacity' : currentPage == 0 ? 0.4 : 1}"