StopPropagation() - uib-accordion标题中的复选框 - AngularJS

时间:2016-11-15 14:05:35

标签: angularjs angular-ui-bootstrap accordion stoppropagation

手风琴标题内的复选框出现问题。

目的:

如果正在使用该部分,则标题中的复选框是一个指示符。

用户操作:

有两种方法可以将复选框的值设置为true。

第一个选项是单击复选框本身。发生这种情况时,该部分应该打开,值应为true。

第二个选项是单击标题本身。当这个动作发生时,该部分应该打开,值应该为真。

但是当复选框的值为true时,只能通过单击复选框本身来更改它。因此,这意味着当用户关闭标签并选中复选框时,标签应关闭,该复选框应保持选中状态

问题:

我使用$event.stopPropagation();更新标头内复选框的值。但问题是$ event.stopPropagation();阻止父级在发生变化时得到通知。因此它只更新复选框值,但不更新部分。

Plunker行动:

单击标题本身打开选项卡。该部分打开,复选框的值设置为true。在此之后单击复选框以将值设置为false。如您所见,它将值设置为false,但该部分将保持打开状态,因为它被$event.stopPropagation();

阻止

Plunker:http://plnkr.co/edit/CyM6d8Or75SqRGavTYyI?p=preview

谢谢!

布伦特

1 个答案:

答案 0 :(得分:0)

$event.stopPropagation()阻止调用accordion-group指令的toggleOpen事件(展开和折叠手风琴)。

在这种情况下,您可以在checkboxClicked事件中扩展/折叠accordion组:

$scope.checkboxClicked = function(tab,e){ 
    $scope.accordion.groups[0].isOpen = !$scope.accordion.groups[0].isOpen; //expand and collapse the accordion group 
    e.stopPropagation();
}

示例

Forked and modified plunker