angular.js ng-class if-then 语句不工作
angular.js ng-class if-then statement not working
我对 angularjs 比较陌生。我正在尝试使用 ng-class 将 bootstrap 导航选项卡设置为活动选项卡(如果它是当前选中的选项卡)。
<ul class="nav nav-tabs nav-stacked nav-pills" role="tablist" ng-repeat="category in editor.categories">
<li ng-model='value.[[category.id]]' ng-class="[[category.id]] == [[currentTab]] ? 'active' : 'innactive'">
<a class="btn-md" ng-click="changeTab([[category]])" href="">[[category.name]]</a>
</li>
</ul>
在下面的代码片段中,category.id = 1456 和 currentTab = 1456 但出于某种原因,它仍然设置了 innactive class。据我了解,if-then 语句将是这样的 if (1456 == 1456) class = 'active';有没有人知道发生了什么,或者我可以采取更好的方法来让它发挥作用?任何建议将不胜感激。谢谢
很想发表评论来问这个,但我还没有声誉。
出于好奇,你试过三个等号吗?
[[category.id]] === [[currentTab]] ? 'active' : 'innactive'"
如果让它变成'==='仍然不起作用意味着说它们都是不同类型的。如果是这种情况,那么您可能需要考虑通过 parseInt()
之类的方法将它们都设为 int
此示例代码有效,希望对您有所帮助:
angular.module('myApp', [])
.controller('myController', function ($scope) {
$scope.currentTab = 1;
$scope.editor = {
"categories": [
{"id": 1, "name": "cars"},
{"id": 2, "name": "boats"},
{"id": 3, "name": "planes"}
]
};
});
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<style>
.active {
color: green;
}
.innactive {
color: lightgrey;
}
</style>
</head>
<body ng-controller="myController">
<ul ng-repeat="category in editor.categories">
<li ng-class="category.id == currentTab ? 'active' : 'innactive'">
<a href="">{{category.name}}</a>
</li>
</ul>
<script src="../angularjs/angularjs_1.2.5/angular.js"></script>
<script src="test.js"></script>
</body>
</html>
我对 angularjs 比较陌生。我正在尝试使用 ng-class 将 bootstrap 导航选项卡设置为活动选项卡(如果它是当前选中的选项卡)。
<ul class="nav nav-tabs nav-stacked nav-pills" role="tablist" ng-repeat="category in editor.categories">
<li ng-model='value.[[category.id]]' ng-class="[[category.id]] == [[currentTab]] ? 'active' : 'innactive'">
<a class="btn-md" ng-click="changeTab([[category]])" href="">[[category.name]]</a>
</li>
</ul>
在下面的代码片段中,category.id = 1456 和 currentTab = 1456 但出于某种原因,它仍然设置了 innactive class。据我了解,if-then 语句将是这样的 if (1456 == 1456) class = 'active';有没有人知道发生了什么,或者我可以采取更好的方法来让它发挥作用?任何建议将不胜感激。谢谢
很想发表评论来问这个,但我还没有声誉。
出于好奇,你试过三个等号吗?
[[category.id]] === [[currentTab]] ? 'active' : 'innactive'"
如果让它变成'==='仍然不起作用意味着说它们都是不同类型的。如果是这种情况,那么您可能需要考虑通过 parseInt()
之类的方法将它们都设为 int此示例代码有效,希望对您有所帮助:
angular.module('myApp', [])
.controller('myController', function ($scope) {
$scope.currentTab = 1;
$scope.editor = {
"categories": [
{"id": 1, "name": "cars"},
{"id": 2, "name": "boats"},
{"id": 3, "name": "planes"}
]
};
});
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<style>
.active {
color: green;
}
.innactive {
color: lightgrey;
}
</style>
</head>
<body ng-controller="myController">
<ul ng-repeat="category in editor.categories">
<li ng-class="category.id == currentTab ? 'active' : 'innactive'">
<a href="">{{category.name}}</a>
</li>
</ul>
<script src="../angularjs/angularjs_1.2.5/angular.js"></script>
<script src="test.js"></script>
</body>
</html>