angular 如何用指令给给列表动态进行class切换

图片描述

代码

图片描述

想要的效果是,给当前点击的那个添加样式,其他的清空。

阅读 7.1k
2 个回答

不要这么麻烦了,咱们直接用ng-class吧,像这样:

修正:

好吧,我错了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
    <ul>
        <li ng-repeat="x in ulList" ng-class="{active: currentIndex === $index}" ng-click="handleActive($index)">{{ x.li }}</li>
    </ul>
    <script type="text/javascript">
        var app = angular.module('myApp', []);
        app.controller('myCtrl', ['$scope', function($scope){
            $scope.handleActive = function(index){
              $scope.currentIndex = index;
            };
            
            $scope.ulList = [
                {
                    id: '1',
                    li: '01'
                },{
                    id: '2',
                    li: '02'
                },{
                    id: '3',
                    li: '03'
                },{
                    id: '4',
                    li: '04'
                }
            ];
        }]);
    </script>
</body>
</html>

用属性绑定的方式
给 ulList 里的每个元素加个 isSelected 属性,当 Click 时更改 isSelected 的值
HTML 中用 ng-class

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进