javascript - ng 类表达式 : merge condition and class name

标签 javascript angularjs expression directive ng-class

假设我有 3 个变量(它们可以更改其值):

$scope.A = 'one';
$scope.B = true;
$scope.C = false;
  • <div ng-class="A"></div>渲染<div class="one">
  • <div ng-class="{'two': B, 'three': C}"></div>渲染<div class="two">

如何合并变量和表达式来渲染 <div class="one two"> ?我必须写一个函数吗?

我尝试过:<div ng-class="[A, {'two': B}, {'three': C}]"></div>

最佳答案

我脑子里有两个解决方案:

看看他们在这方面工作plunker

首先:在 HTML 中

<div class="aclass {{A}}" ng-class="{'two': B, 'three': C}"></div>

第二:带有函数

<div class="aclass" ng-class="getClasses()"></div>

在你的 Controller 中

$scope.A = 'one';
$scope.B = true;
$scope.C = false;

$scope.getClasses = function(){
    var classes = "";
    classes += $scope.A;
    if($scope.B) classes += " two ";
    if($scope.C) classes += " three ";
    return classes;
}

两者都会导致

<div class="aclass one two"></div>

关于javascript - ng 类表达式 : merge condition and class name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30533037/

相关文章:

javascript - 正则表达式删除 '[' 和 ']' 之间的空格

mongodb - 使用 $and 和多个 $or 查询 MongoDB

javascript - 为什么我的筛子在查找素数方面表现不佳?

javascript - 使用 JavaScript 进行拖放警报

javascript - js-正则匹配数组和字符串

javascript - 如何将 js 变量输入到 ng-repeat 中的过滤器中

angularjs - 无法注入(inject) $location 服务

Javascript 到 Django views.py?

javascript - 如何以特殊分割方式重复背景图

ruby-on-rails - 我应该将 Cucumber 用于 AngularJS 单页应用程序吗?