javascript - 在 Angular JS 中切换 ng-repeat 中的图标

标签 javascript angularjs icons toggle

在下面的代码中,我尝试为一系列区域显示加号 [+]。当用户单击加号时,子区域将显示在下方,并且加号将更改为减号 [-]。

区域显示正确,单击链接时子区域显示正确。但是,我似乎无法让显示/隐藏对加号和减号起作用,并且当用户单击减号再次折叠列表时,我需要隐藏子区域。

<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}`)
}

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

最佳答案

你可以这样做:

<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 是您的 item1 的状态。

关于javascript - 在 Angular JS 中切换 ng-repeat 中的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46785230/

相关文章:

javascript - 错误: data and salt arguments required (am i missing something)?

javascript - 将 jQuery 延迟 Promise 转换为原生 JavaScript Promise

javascript - 如何在angularjs中使用session

java - 数字作为 Android 通知的图标

user-interface - 用户界面图标

python - 如何在 Debian/Ubuntu 中为我的 python 应用程序定义图标?

javascript - IE10、11 带连字符的 CDATA 解析错误

javascript - 如何使用使用相同查询参数的 super 代理发送请求

angularjs - 是否有与 Angular1 的 $location.absURL() 等效的 Angular 2?

javascript - 使 AngularJs 可被搜索引擎抓取