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

ng-class根据ng-repeat突出显示活动菜单项。AngularJS

云项禹
2023-03-14
问题内容

我有一个基于以下示例的菜单:

 <nav  data-ng-controller="menuContrl" class="menuItem">
     <a  data-ng-class='{active:isActive("/{{item.path}}")}' data-ng-repeat="item in menu" href="#/{{item.path}}">
         <span>{{item.title}}</span>
     </a>
 </nav>

item是一个对象,包含菜单项信息。这是指令和控制器的JavaScript代码:

var app = angular.module("coolApp",[]);

function menuContrl($scope,$location){
    $scope.menu=menu;
    $scope.isActive = function(path){
        return ($location.path()==path)
    } 
}

问题是,ng- classclassactive只有一次页面渲染过程中,但是当你点击一个菜单项,没有一切发生的时候。我想这是因为菜单本身并未重新加载,而我只是在其中更改了数据<div>。那么如何在不重新加载整个页面的情况下使它工作呢?


问题答案:

试试看:-http :

//jsfiddle.net/uDPHL/146/

的旧版本中存在此问题angular js
[Reference](https://github.com/angular/angular.js/issues/4002),将其升级到angular js 1.2.0版本后已解决。

JS:-

var navList = angular.module('navList', []);

navList.controller('navCtrl', ['$scope', '$location', function ($scope, $location) {

    $scope.navLinks = [{
        Title: 'home',
        LinkText: 'Home',
    }, {
        Title: 'about',
        LinkText: 'About Us'
    }, {
        Title: 'contact',
        LinkText: 'Contact Us'
    }];

    $scope.navClass = function (page) {
        var currentRoute = $location.path().substring(1) || 'home';
        return page === currentRoute ? 'active' : '';
    };

}]);

HTML:-

<div class="well sidebar-nav" ng-app="navList">
    <ul class="nav nav-list" ng-controller="navCtrl">
        <li ng-repeat="navLink in navLinks" ng-class="navClass('{{navLink.Title}}')"> <a href='#/{{navLink.Title}}'>{{navLink.LinkText}}</a> 
        </li>
    </ul>
</div>


 类似资料:
  • 问题内容: “活动”类的CSS来自引导程序。 因此,切换作品几乎是我想要的。我希望它类似于导航链接中的活动状态,但在我的示例中,它处理图像,因此需要担心url字符串等。 我尝试模拟此示例,但没有用(我尝试了相同的图像逻辑):ng-class突出显示基于ng- repeat的活动菜单项,如果有人能指出我正确的方向,我将不胜感激。:D 问题答案: 在您遇到的情况下,我要做的是在ng-repeat的父范

  • 问题内容: 我正在使用Angular.js应用程序,该应用程序通过医疗程序的json文件进行过滤。当使用ng- click单击(在同一页面上)过程名称时,我想显示每个过程的详细信息。这是我到目前为止的内容,.procedure-details div设置为显示:无: 我在角度上很新。有什么建议? 问题答案: 删除,然后改用: 这是小提琴:http : //jsfiddle.net/asmKj/ 您

  • 问题内容: 嗨,我有一个简单的ng-repeat-start和end用例,并且工作正常,当我想添加一个内部ng-repeat时出现了问题。这是我的代码 内部ng-repeat到td元素中不起作用,在检查html源代码时看到ngRepeat注​​释,但未创建td元素。 我的丑陋的解决方法(假设我知道该向量的大小)是: 问题答案: 从那时起,我不确定是否使用角度1.1.6,并且在1.1.5或1.0.7

  • 问题内容: AngularJS是否可以在当前页面的链接上设置类提供任何帮助? 我想象有一种神奇的方法可以完成,但是我似乎找不到。 我的菜单如下: 并且我在自己的路线中有针对每个控制器的控制器:和。 但是我想不出一种方法来将链接上的“活动”类绑定到控制器。 有什么提示吗? 问题答案: 在看 在控制器上 这样,任务链接将在以’/ tasks’开头的任何url中具有活动类(例如’/ tasks / 1

  • 问题内容: 我正在使用AngularJS,并且假设它可以工作(不起作用),我想获得的效果将类似于它将产生的效果。 视图 控制者 我意识到该代码将无法使用,因为它不可用,因为它将仅可用于每一行内的对象。该代码是为了让我了解正在尝试做的事情:即。我希望能够使用其类也基于条件的表行来创建,该条件取决于对行本身的范围功能的访问。。我意识到我 可以 在列上添加ng- class,但这很无聊。有人有更好的主意

  • 问题内容: 我试图了解over 的意义。角度文档提供了以下示例 但是,使用, 有人可以解释。的意义吗?谢谢。 问题答案: 这两个指令的含义相似:它们重复HTML标记。所不同的只是,在您的帮助下,您可以重复几个标签,从标签开始于,再到完成于。 例如,您有下一个代码: 因此,现在我们可以为这些代码添加2个指令。 与: 与和: 因此,现在您可以看到,在第一种情况下,仅使用指令重复,但是在第二种情况下,您