【问题标题】:Set css class to list options dynamically AngularJS设置css类以动态列出选项AngularJS
【发布时间】:2016-02-27 06:26:22
【问题描述】:

我的代码中有两个列表选项 - 每月和每季度 我有一个“活动”类,通常会突出显示该元素。

当单击或选择选项之一时,我需要将“活动”类应用于其中一个选项。此处 class=active 仅手动应用于每月。 正在为此寻找 Angular 解决方案。

  <div class="list">
           <p class="subheader secondary">Select Preferred View</p>
           <ul class="tabs">
           <li><a href="#monthly" ng-click="type='month'" data-ajax="false" **class=active**>Monthly</a></li>
           <li><a href="#quarterly" ng-click="type='quarter'" data-ajax="false">Quarterly</a></li>
   </ul>
  </div>

【问题讨论】:

    标签: angularjs css angularjs-directive


    【解决方案1】:

    在下面的代码中使用 ng-class 指令。

    <div class="list">
               <p class="subheader secondary">Select Preferred View</p>
               <ul class="tabs">
               <li><a href="#monthly" ng-click="type='month'" ng-class="{'active' : type=='month'}" data-ajax="false" **class=active**>Monthly</a></li>
               <li><a href="#quarterly" ng-click="type='quarter'" ng-class="{'active' : type=='quarter'}" data-ajax="false">Quarterly</a></li>
       </ul>
      </div>
    

    当类名后给出的表达式计算为真时添加指定的类,当计算为假时将其删除。

    ng-class="{'classname' : expression}"
    

    您可以在控制器中设置默认值:

    $scope.type = 'month';
    

    或通过 div 上的 ng-init 指令:

    <div class="list" ng-init="type='month'">
    

    jsfiddle with example

    jsfiddle with setting default in ng-init

    【讨论】:

    • 谢谢。默认情况下,活动课程会突出显示每月,当我现在单击“季度”时,它会突出显示“季度”,但不会从“每月”中删除。我想切换选择并默认保持每月活动
    • 你看过 jsfiddle 吗?从每月删除活动课程。设置默认值,您可以通过设置 $scope.type = 'month'; 在控制器中处理或通过将 ng-init="type='month'" 添加到父 div
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2012-12-04
    • 2021-03-14
    相关资源
    最近更新 更多