当前位置: 首页 > 面试题库 >

如何使用ng-click在ng-repeat项中切换活动状态ng-class?

淳于飞文
2023-03-14
问题内容

“活动”类的CSS来自引导程序。

因此,切换作品几乎是我想要的。我希望它类似于导航链接中的活动状态,但在我的示例中,它处理图像,因此需要担心url字符串等。

我尝试模拟此示例,但没有用(我尝试了相同的图像逻辑):ng-class突出显示基于ng-
repeat的活动菜单项,如果有人能指出我正确的方向,我将不胜感激。:D


问题答案:

在您遇到的情况下,我要做的是在ng-repeat的父范围内定义一个对象,然后将索引或任何您希望分配给该对象的属性。那是因为对象通过javascript中的引用来工作,这意味着ng-click实际上将更新父范围属性,而不是重新定义它。在plnkr上的示例:http://plnkr.co/edit/oA12yLIb3RnlSYe6JxhI?p=preview

<!DOCTYPE html>
<html ng-app>

  <head>
    <style>
        .active{
            background-color: red;
            height: 500px;
            width: 500px;
        }
    </style>
  </head>

  <body ng-controller="HolaCtrl">
    <ul>
      <li data-ng-repeat="image in images" data-ng-click="toggleObject.item = $index">a
         <img data-ng-class="{'active' : toggleObject.item == $index}" src="" /><br>
      </li>
    </ul>
    <script>
        function HolaCtrl($scope){
            $scope.images = [1,2,3];
            $scope.toggleObject = {item: -1};
        }
    </script>
  </body>

</html>


 类似资料:
  • 问题内容: 任何人都可以为该JSFiddle提供正确的方法: JsFiddle链接 我正在尝试通过.class&#ID更改元素的类。 提前致谢 感谢tymeJV,新的JSFiddle: 解 问题答案: 正确的方法是根据切换变量使用,请考虑: CSS: JS: HTML: 通过根据变量(“ toggle”)是否为或分配引用的类(在上面为“红色”)来工作。

  • 问题内容: 我正在开发一个页面,我需要在其中显示一些框(使用),其中包含频道信息以及显示位置(城市)。 我面临的问题是当我重复第二遍时: 这应该获得第一个ng-repeat的$ index值,并使用显示频道的位置创建一个新数组。它确实做到了。但是,当我使用此数组应用第二个ng- repeat时,它无法正常工作。 说我的html看起来像这样(PS:我需要使用索引值而不是因为我将这些框放到列中) JS

  • 问题内容: 我想问你是否可以帮我这个忙。 我在这里用我的问题创建了一个jsfiddle 。我需要使用ng-model =“ my _ {{$ index}}”方式在ng-repeater中动态生成一些带有ng-model的输入。 在jsfiddle中,您可以看到一切正常,直到我尝试动态生成它为止。 HTML将是: 还有javascript … 你能给我个主意吗? 非常感谢。 问题答案: 它能解决您

  • 问题内容: 我有这个: 在角度我有这个: 但是我该如何在单击时更改此设置,以便如果用户在菜单上单击一次即可激活,如果再次单击将不处于激活状态? 问题答案: 好吧,假设您有多个菜单项,并且想要根据点击来切换课程, 您可以 在控制器中 创建一个将菜单项表示为的数组, 分配默认的选定菜单项 创建一个函数来分配选定的菜单值,此函数将分配最后一个选定的菜单项。 在 HTML中 遍历数组并创建菜单。 在检查最

  • 问题内容: 我有一个基于以下示例的菜单: item是一个对象,包含菜单项信息。这是指令和控制器的JavaScript代码: 问题是,套到只有一次页面渲染过程中,但是当你点击一个菜单项,没有一切发生的时候。我想这是因为菜单本身并未重新加载,而我只是在其中更改了数据。那么如何在不重新加载整个页面的情况下使它工作呢? 问题答案: 试试看:-http : //jsfiddle.net/uDPHL/146/

  • 问题内容: 我有一个,我正在尝试添加将相同范围变量传递给模态窗口的模态。我能够打开模式窗口,但是ng- repeat的作用域值未显示在模式内部。希望我的代码能更好地解释。这是我到目前为止的内容: 控制器: 上面打开了模式窗口。 但是,诸如ng-repeat中的{{customer.name}}之类的客户详细信息不会传递到模式窗口中。控制器有问题吗? 我在这里查看Angular Bootrap UI