如图所示,上面的5个块,用ng-repeat循环输出,怎样实现当点击某一块(如块2)时,该块的背景颜色变为红色?其他的块的颜色不变。谢谢指点。
There are too many methods, ng-click, ng-class, directive can be implemented. This is a direct method, for reference onlyhtml:
<p> <span ng-class="{'selected':selected==s}" ng-repeat="s in list" ng-bind="s" ng-click="changeStatus(s)"></span> </p>
js
$scope.list = [1,2,3,4,5]; $scope.changeStatus = function(index){ $scope.selected = index; }
Add click event. Pass the $index and $event of the current loop. Then it's OK to handle it yourself through angular jq.
Give you a ready-made code: HTML
<p class='options'> <span class='option' ng-class="{'selected':s._selected}" ng-repeat="s in orderStatus" ng-bind="s.l" ng-click="clickStatus(s)"></span> </p>
JS
$scope.clickStatus = function(prop) { prop._selected = !prop._selected; };
CSS
.option{display:inline-block;border:1px solid green;padding:.25em;margin:.5em .5em 0 0;} .option.selected{background:green;color:white;}
I am planning to write a directive to do this
http://runjs.cn/detail/yfnwk6ho
There are too many methods, ng-click, ng-class, directive can be implemented.
This is a direct method, for reference only
html:
js
Add click event. Pass the $index and $event of the current loop. Then it's OK to handle it yourself through angular jq.
Give you a ready-made code:
HTML
JS
CSS
I am planning to write a directive to do this
http://runjs.cn/detail/yfnwk6ho