删除数组元素时边栏关闭

时间:2016-08-11 07:16:21

标签: javascript angularjs mobile-angular-ui

我使用移动角度ui打开和关闭侧边栏。在此侧栏中,用户可以搜索人员并在阵列中添加或删除这些人员。

我有这个重复,显示点击<a ...></>关闭边栏的人员数组:

<li ng-repeat="recipient in persons.recipients">
    <span class="wrapper">
        <span class="imageWrap">
            <span class="initials">
                {{recipient.firstName.charAt(0)}}{{recipient.lastName.charAt(0)}} </span>
        </span>
        <a href="" class="trash" ng-click="removeRecipient($index);"><i class="fa fa-trash-o" aria-hidden="true"></i></a>
        <span class="details">
            <span class="info">
                {{recipient.firstName}} {{recipient.lastName}}
                <span class="persnr">{{recipient.employeeID}}</span>
            </span>
        </span>
    </span>
</li>

上面的html代码段来自侧栏中的指令。 removeRecipient($index);函数如下所示:

$scope.removeRecipient = function(index) {
    $scope.persons.recipients.splice(index,1);
}

该功能有效,但关闭了侧边栏,我无法弄清楚为什么会这样做。因此,每次用户移除收件人时,都必须再次打开侧边栏。如何保持侧边栏打开?

参考文献:

我通过在$event.stopPropagation();函数后面的ng-click添加removeRecipient($index);来解决我的问题。

1 个答案:

答案 0 :(得分:1)

来自doc,有一行。

  

你可以把ui-turn-off ='uiSidebarLeft'或ui-turn-off ='uiSidebarLeft'   在侧边栏内部,单击其中的链接后将其关闭。

也许你可以使用它,或者你可以使用,或者你可以这样做。

e.stopPropagation()

为此你需要在

中传递$ event
<a href="" class="trash" ng-click="removeRecipient($index,$event);"><i class="fa fa-trash-o" aria-hidden="true"></i></a>

所以在代码中,你可以写。

$scope.removeRecipient = function(index,e) {
    if(e){
        e.stopPropagation()
    }
    $scope.persons.recipients.splice(index,1);
}

我没有使用相同的工具,但可能是这个问题。