javascript - 在 Angular JS 中如果条件匹配则添加类

标签 javascript php angularjs codeigniter

我刚刚开始使用 Angular JS。我将它与 CodeIgniter 一起使用。如果条件匹配,我正在尝试添加 {class="active"}。

我正在尝试将事件类添加到 <li>如果其标题与 url 的最后一段匹配。

 if(title of this nav_menu matches with the last uri segment)
    add "active" class
 else
    do nothing

我的代码如下:

header.php

<ul class="nav navbar-nav" ng-app="" ng-controller="menuController">
    <li ng-repeat="x in menus" ng-class="{'active': x.name = scope}">
        <a ng-href="http://{{ x.link}}">{{ x.name }}</a>
    </li>
</ul>

页脚.php

<script
    src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>


<script>
    function menuController($scope) {

        $scope.menus = [ {
            name : "Home",
            link : "projects/test/home"
        }, {
            name : "Daily Special",
            link : "projects/caesar/daily-especial"
        }, {
            name : "Menu",
            link : "projects/test/menu"
        }, {
            name : "Special",
            link : "projects/test/special"
        }, {
            name : "Gallery",
            link : "projects/test/gallery"
        }, {
            name : "About us",
            link : "projects/test/about-us"
        }, {
            name : "Contact",
            link : "projects/test/contact"
        } ];

        $scope.current = '<?php echo $this->uri->segment(2); ?>';

    }
</script>

我认为有问题的步骤是 $scope.current = 'uri->segment(2); ?>';

最佳答案

这是 ng-class 的工作原理,如下例所示

ng-class="{ 'active': menu.IsCurrentTab, 'inactive': !menu.IsCurrentTab }"
如果范围变量 menu 具有 IsCurrentTabtrue,则将添加

class active。否则将使用inactive类。

对于你的情况,首先我不知道你的这段代码是做什么的

$scope.current = '<?php echo $this->uri->segment(2); ?>';

如果这将当前菜单名称放入$scope.current变量中,那么您需要做的就是

<li ng-repeat="x in menus" ng-class="{'active': x.name == current}" >

希望这有帮助。

编辑:

希望您检查该值是否已填充到您的 $scope.current 变量中。

关于javascript - 在 Angular JS 中如果条件匹配则添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26879892/

相关文章:

javascript - 在 AngularJS 1.5.0 中获取 $http.get() 中的空返回结果

javascript - iFrame 无法从 codepen 或任何其他网站加载

javascript - Chart js - 自定义图表

php - WordPress - 没有 category.php 的分类页面

php - 如何在 uwamp 服务器的 php 7.3+ 中启用 curl

php - 将元标记与 PHP 一起用于搜索引擎

javascript - 单击以删除 AngularJS 中动态创建的元素

javascript - 我如何告诉 Grunt 不要在构建任务中缩小或连接 js 文件?

javascript - 如何使用JS和Golang将视频上传到Google云端硬盘?

javascript - Jasmine 不会在每个测试规范后重置 spy