javascript - 在 ng-class 和 ng-click 属性中使用循环变量

标签 javascript css angularjs

以下代码创建七个缩略图的列表,事件图像应具有类 active (和 thumb)。

<div ng-repeat="no in [1, 2, 3, 4, 5, 6, 7]">
  <img ng-src="images/{{no}}t.jpg" 
    class="thumb" ng-class="{'active': imgNumber == no}" ng-click="change(no)"/>
</div>

图像显示正确,但类 active 未应用于当前选定的图像,并且单击时图像不会更改。

这是 Controller :

function Gallery($scope) {
    $scope.imgNumber = "1";
    $scope.change = function(imgNumber) {
        $scope.imgNumber = imgNumber;
    }
}

如果我展开循环并将 no 替换为当前图像编号,一切都会按预期工作。

为什么 ng-classng-click 中的表达式不起作用?

最佳答案

我看不出有什么问题。我尝试用这个 jsFiddle 来模拟它:http://jsfiddle.net/63xze/它似乎按预期工作。您可以编辑 jsFiddle 来说明您的问题吗?

由于我无法在没有代码的情况下发布 jsFiddle,因此我的 jsFiddle 如下所示:

<!doctype html>
<html ng-app="myApp">
<head>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://code.angularjs.org/1.1.2/angular.min.js"></script>
    <script type="text/javascript">
    var myApp = angular.module('myApp', []);

    myApp.controller('MainCtrl', ['$scope', function($scope){
        $scope.imgNumber = "1";
        $scope.change = function(imgNumber) {
            $scope.imgNumber = imgNumber;
        }
    }]);
    </script>
    <style>
    .img {
        background: red;
        width: 15px;
        height: 15px;
    }
    .img.active {
        background: black;
    }
    </style>
</head>
<body ng-controller="MainCtrl">
    <div ng-repeat="no in [1, 2, 3, 4, 5, 6, 7]">
        <div class="img" class="thumb" ng-class="{'active': imgNumber == no}" ng-click="change(no)">{{no}}</div>
    </div>
</body>
</html>

关于javascript - 在 ng-class 和 ng-click 属性中使用循环变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15062111/

相关文章:

html - 内联 block div 中图像下方的空白

CSS 动画向前然后向后

javascript - AngularJS - 将数据添加到现有模型

angularjs - 如何使用 AngularJs 调整 SVG viewBox 的大小?

javascript - 如何在用户输入中写入数组的编号并获取该特定数组编号的信息?

javascript - Uint8Array 到 ArrayBuffer

javascript - React - 仅在一个选项卡中显示按钮

javascript - Electron app.on ("open-url") Windows 中自定义协议(protocol)的替代方案

javascript - 当鼠标/光标点击弹出窗口时如何使用非事件和事件背景弹出

javascript - 使用 AngularJS 的 ASP.NET 5 路由导航