javascript - AngularJS:ng-class 不适用于 bool 函数

标签 javascript angularjs twitter-bootstrap angular-directive

我正在尝试实现此目的:如果数组中存在列表元素,则更改按钮图标和颜色类别。如果该对象不存在,则图标将是带有 btn-success Bootstrap 类的 glyphicon-plus。否则,将会出现一个带有 btn-danger 类的 glyphicon-minusisSelected 函数返回一个 bool 值,指示列表中是否存在该对象。但是,每次我打开模式 (Angular-UI-Bootstrap) 时,isSelected 都会出现解析错误。

如何在 ng-class 指令中正确设置 bool 函数?

<tbody>
    <tr ng-repeat="ex in exams track by ex.uid" ng-class="{selected: ex.uid === selectedExam.uid}" ng-click="rowclick(ex)" ng-dblclick="pushToRemoveFromSelectedList(ex)">
        <td>{{ ex.description }}</td>
        <td>{{ ex.date }}</td>
        <td>{{ ex.code }}</td>
        <td class="hidden-sm hidden-xs">{{ ex.class }}</td>
        <td>
            <button type="button" ng-class="'btn btn-sm btn-success':!isSelected(ex), 'btn btn-sm btn-danger':isSelected(ex)" ng-click="pushToRemoveFromSelectedList(ex)">
                <span ng-class="'glyphicon glyphicon-plus':!isSelected(ex), 'glyphicon glyphicon-minus':isSelected(ex)"></span>
            </button>
        </td>
    </tr>
</tbody>

最佳答案

您需要将属性值封装在 {} 中。

试试这个:

<button type="button"
        class="btn btn-sm"
        ng-class="'{ btn-success':!isSelected(ex), 'btn-danger':isSelected(ex) }"
        ng-click="pushToRemoveFromSelectedList(ex)">
    <span class="glyphicon"
          ng-class="{ 'glyphicon-plus':!isSelected(ex), 'glyphicon-minus':isSelected(ex) }"></span>
</button>

我将 class="btn btn-sm" 分离出来,因为在这两种情况下都使用了这些类。

关于javascript - AngularJS:ng-class 不适用于 bool 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34157902/

相关文章:

javascript - 如何像 Google Analytics 一样缩小 JavaScript?

javascript - 如何从 ng-repeat 中访问用户名

angularjs - 如何/何时使用 ng-click 来调用路线?

html - 如何删除 Bootstrap 下拉容器?

python - Django 找不到我的静态文件

javascript - 如何最好地传递几乎总是相同的可选函数参数

javascript - 如何清除 javascript 中的谷歌地图标记缓存?

javascript - 如何在 Angular JS 中加载页面?

html - 使用 2 个按钮在 Bootstrap 中创建响应式导航栏

javascript - 谷歌浏览器地址栏焦点