代码之家  ›  专栏  ›  技术社区  ›  Norbert Norbertson

在angular js中的ng repeat中切换图标

  •  0
  • Norbert Norbertson  · 技术社区  · 7 年前

    在下面的代码中,我试图为一系列区域显示加号[+]。当用户单击加号时,子区域显示在下面,加号变为负号[-]。

    <div ng-repeat="item1 in vm.Regions track by $index">
        {{item1}}
        <a ng-click="vm.expandIt(item1)">
            <span>[+]</span> 
            <span>[-]</span>
        </a>
        <input type="checkbox" />
    
        <div ng-if="vm.collapseId==item1" ng-repeat="item2 in vm.data | filter:{'Region':  item1}:true">
            {{item2.CCG}}<input type="checkbox" ng-model="item2.Selected" />
        </div>
    
    </div>
    

    这个 expandIt 函数如下所示:

    function expandIt(item) {
      vm.collapseId = item;
      console.log(`expand called!:${vm.collapseId}`)
    }
    

    谁能给我指一下正确的方向吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   sjahan    7 年前

    你可以这样做:

    <a ng-click="vm.expandIt(item1)">
        <span>{{item1.label}}</span> 
    </a>
    

    哪里 label 定义为 [+] [-] 根据项目的状态。

    另一种方法可以是:

    <a ng-click="vm.expandIt(item1)">
        <span ng-if="!item1.expanded">[+]</span> 
        <span ng-if="item1.expanded">[-]</span>
    </a>
    

    哪里 expanded 是项目1的状态。