复杂的角度js ng级

Szy*_*ski 38 angularjs ng-class

我有组件,并在设置css类时遇到问题.我希望它总是有一个"box"类,然后有指令"class"参数和一个条件类"mini"指定的其他类.

从概念上讲,我想要实现的是这样的:

<div class="box {{class}}" data-ng-class="{mini: !isMaximized}">
...
</div>
Run Code Online (Sandbox Code Playgroud)

问题是当我设置类html属性时,省略了ng-class属性.如何在不更改控制器的情况下使我的示例工作?它是否可能,或者我应该在控制器中设置类(我希望避免)?

And*_*ves 62

一个快速的解决方案是在ng-class属性中定义box类:

<div data-ng-class="{mini: !isMaximized, box: true}"></div>
Run Code Online (Sandbox Code Playgroud)

如果要将范围变量作为类包含,则不能使用ng-class:

<div class="{{class}} box {{!isMaximized && 'mini' || ''}}">
Run Code Online (Sandbox Code Playgroud)

Angular表达式不支持三元运算符,但它可以像这样模拟:

condition &&(如果是,则回答)|| (如果错误则回答)

  • 此外,AngularJS现在具有三元条件运算符. (9认同)
  • 你太棒了!这样就省去了我:"如果你想把一个范围变量作为一个类来包含,你就不能使用ng-class" (4认同)

小智 12

我需要多个类,其中一个是$ scope派生的,另一些是文字类.感谢安德烈的暗示,下面为我工作.

<h2 class="{{workStream.LatestBuildStatus}}" 
    ng-class="{'expandedIcon':workStream.isVisible,  'collapsedIcon':!workstream.isvisible}">{{workStream.Name}}</h2>
Run Code Online (Sandbox Code Playgroud)