AngularJs - 在ng-click上应用条件

时间:2016-07-15 06:54:36

标签: angularjs

我正在创建一个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>

注意:单个用户只能打开一个框

1 个答案:

答案 0 :(得分:0)

您可以在控制器中保留每个userId的已打开框的列表。然后向控制器添加一个函数,您可以在ng-if或ng-class中使用该函数来显示div的不可单击版本。使用相同的列表检查是否应在vm.activateChat()

中打开新模式