我正在创建一个angularjs应用程序,在此我有一个来自ng-repeat
的用户列表。现在每当我点击任何用户时,都会打开一个新的div框。但问题是,为同一个用户打开了多个框,我只想为一个用户打开一个框。
我尝试使用ng-if
但失败了。
我正在分享我的代码,请提前检查并提供解决方案。
来自用户列表的代码即将到来:
<div class="people">
<div ng-repeat="user in vm.otherUsers | filter : vm.search">
<div directive class="person" ng-click="vm.activateChat(user);bubble=true;" id="chat_{{user.id}}" ng-disabled="true">
<img alt="" />
<span class="name" >{{user.firstName}} {{user.lastName}}
<span ng-if="!bubble && user.counter>0" class="noti_bubble">{{user.counter}}</span>
</span>
</div>
</div>
</div>
并单击activateChat打开该用户的新框。 该框的代码是:
<div ng-repeat="chatUser in vm.multipleUsers">
<div class="msg_box" id="d_{{chatUser.id}}">
--box content--
</div>
</div>
注意:单个用户只能打开一个框
答案 0 :(得分:0)
您可以在控制器中保留每个userId的已打开框的列表。然后向控制器添加一个函数,您可以在ng-if或ng-class中使用该函数来显示div的不可单击版本。使用相同的列表检查是否应在vm.activateChat()
中打开新模式