假设您有一个呈现为的数组,ul
其中li
每个元素都有一个,控制器上的属性为selectedIndex
。li
用selectedIndex
AngularJS中的索引向中添加类的最佳方法是什么?
我目前正在复制(手工)li
代码并将类添加到li
标签之一中,并使用ng-show
和ng-hide
仅显示li
每个索引一个。
假设您有一个呈现为的数组,ul
其中li
每个元素都有一个,控制器上的属性为selectedIndex
。li
用selectedIndex
AngularJS中的索引向中添加类的最佳方法是什么?
我目前正在复制(手工)li
代码并将类添加到li
标签之一中,并使用ng-show
和ng-hide
仅显示li
每个索引一个。
好吧,我建议您使用返回true或false的函数检查控制器中的条件。
<div class="week-wrap" ng-class="{today: getTodayForHighLight(todayDate, day.date)}">{{day.date}}</div>
并在控制器中检查情况
$scope.getTodayForHighLight = function(today, date){
return (today == date);
}
这是一个更简单的解决方案:
function MyControl($scope){
$scope.values = ["a","b","c","d","e","f"];
$scope.selectedIndex = -1;
$scope.toggleSelect = function(ind){
if( ind === $scope.selectedIndex ){
$scope.selectedIndex = -1;
} else{
$scope.selectedIndex = ind;
}
}
$scope.getClass = function(ind){
if( ind === $scope.selectedIndex ){
return "selected";
} else{
return "";
}
}
$scope.getButtonLabel = function(ind){
if( ind === $scope.selectedIndex ){
return "Deselect";
} else{
return "Select";
}
}
}
.selected {
color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
<div ng-app ng-controller="MyControl">
<ul>
<li ng-class="getClass($index)" ng-repeat="value in values" >{{value}} <button ng-click="toggleSelect($index)">{{getButtonLabel($index)}}</button></li>
</ul>
<p>Selected: {{selectedIndex}}</p>
</div>
我将对此加以补充,因为其中一些答案似乎已过时。这是我的方法:
<class="ng-class:isSelected">
其中“ isSelected”是在范围角度控制器内定义的javascript变量。
为了更具体地解决您的问题,以下是如何生成带有该列表的列表:
的HTML
<div ng-controller="ListCtrl">
<li class="ng-class:item.isSelected" ng-repeat="item in list">
{{item.name}}
</li>
</div>
JS
function ListCtrl($scope) {
$scope.list = [
{"name": "Item 1", "isSelected": "active"},
{"name": "Item 2", "isSelected": ""}
]
}
检查 http://www.codinginsight.com/angularjs-if-else-statement/
臭名昭著的angularjs if else声明!!!当我开始使用Angularjs时,我惊讶于找不到if / else语句。
因此,我在一个项目上工作,我注意到当使用if / else语句时,加载时会显示条件。您可以使用ng-cloak修复此问题。
.ng-cloak { display: none }
谢谢阿马杜