Angularjs ng-class在几个类之间切换

时间:2016-03-16 14:11:47

标签: angularjs ng-class

对于你们中的一些人来说这可能是一个简单的问题。

<div class="component"
      ng-class="{'small': small, 'medium': medium, 'large': large, 'xlarge': xlarge}"
      ng-if="component.title == 'Heading'"
      ng-init="editing = false; small = false; medium = false; large = false; xlarge = false">

                  <input class="heading" ng-blur="editing = false" ng-hide="!editing" type="text" placeholder="Heading" ng-model="component.element" />
                  <h2 ng-click="editing = true" ng-hide="editing">{{component.element}}</h2>

                  <div ng-hide="!editing" class="textEditor">
                      <ul>
                          <li>
                              <a href="" ng-click="small = true">
                                  <span class="icon-size small"></span>
                              </a>
                          </li>
                          <li>
                              <a href="" ng-click="medium = true">
                                  <span class="icon-size medium"></span>
                              </a>
                          </li>
                          <li>
                              <a href="" ng-click="large = true">
                                  <span class="icon-size large"></span>
                              </a>
                          </li>
                          <li>
                              <a href="" ng-click="xlarge = true">
                                  <span class="icon-size xlarge"></span>
                              </a>
                          </li>
                      </ul>
                  </div>
               </div>

我需要根据点击无序列表中的标签将类添加到.component。如果单击第一个项目,我需要将class small添加到.component,然后如果单击另一个项目,我需要删除小类并从该A标记添加相应的类。

目前它会添加类但不删除之前添加的类。

基本上我需要在它们之间创建一种切换4类

2 个答案:

答案 0 :(得分:1)

尝试:

ng-class="small ? 'small' : medium ? 'medium' : large: 'large : xlarge ? 'xlarge' : ''"

答案 1 :(得分:0)

我说要为它使用单独的变量customClass

ng-class="customClass"

然后标记

<ul>
    <li>
        <a href="" ng-click="customClass = 'small'">
            <span class="icon-size small"></span>
        </a>
    </li>
    <li>
        <a href="" ng-click="customClass = 'medium'">
            <span class="icon-size medium"></span>
        </a>
    </li>
    <li>
        <a href="" ng-click="customClass = 'large'">
            <span class="icon-size large"></span>
        </a>
    </li>
    <li>
        <a href="" ng-click="customClass = 'xlarge'">
            <span class="icon-size xlarge"></span>
        </a>
    </li>
</ul>