StopPropagation() - uib-accordion header 中的复选框 - AngularJS
StopPropagation() - Checkbox in uib-accordion header - AngularJS
手风琴内的复选框有问题 header。
用途:
header 中的复选框指示是否正在使用该部分。
用户操作:
有两种方法可以将复选框的值设置为 true。
第一个选项是单击复选框本身。发生这种情况时,该部分应该打开并且该值应该为真。
第二个选项是点击 header 本身。当此操作发生时,该部分应该打开并且值应该为真。
但是当复选框的值为 true 时,只能通过单击复选框本身来更改它。所以这意味着当用户关闭选项卡并选中复选框时,选项卡应该关闭并且复选框应该保持选中状态。
问题:
我正在使用 $event.stopPropagation();
来更新 header 中复选框的值。但问题是 $event.stopPropagation();阻止 parent 在发生变化时得到通知。所以它只更新复选框值而不更新部分。
Plunker 操作:
通过单击 header 本身打开选项卡。该部分打开并将复选框的值设置为 true。在此之后单击复选框以将值设置为 false。如您所见,它将值设置为 false 但该部分将保持打开状态,因为它被 $event.stopPropagation();
阻止了
笨蛋:http://plnkr.co/edit/CyM6d8Or75SqRGavTYyI?p=preview
谢谢!
布伦特
$event.stopPropagation()
阻止调用手风琴组指令的 toggleOpen
事件(展开和折叠手风琴)。
在那种情况下,您可以在 checkboxClicked
活动中 expand/collapse 手风琴组:
$scope.checkboxClicked = function(tab,e){
$scope.accordion.groups[0].isOpen = !$scope.accordion.groups[0].isOpen; //expand and collapse the accordion group
e.stopPropagation();
}
例子
手风琴内的复选框有问题 header。
用途:
header 中的复选框指示是否正在使用该部分。
用户操作:
有两种方法可以将复选框的值设置为 true。
第一个选项是单击复选框本身。发生这种情况时,该部分应该打开并且该值应该为真。
第二个选项是点击 header 本身。当此操作发生时,该部分应该打开并且值应该为真。
但是当复选框的值为 true 时,只能通过单击复选框本身来更改它。所以这意味着当用户关闭选项卡并选中复选框时,选项卡应该关闭并且复选框应该保持选中状态。
问题:
我正在使用 $event.stopPropagation();
来更新 header 中复选框的值。但问题是 $event.stopPropagation();阻止 parent 在发生变化时得到通知。所以它只更新复选框值而不更新部分。
Plunker 操作:
通过单击 header 本身打开选项卡。该部分打开并将复选框的值设置为 true。在此之后单击复选框以将值设置为 false。如您所见,它将值设置为 false 但该部分将保持打开状态,因为它被 $event.stopPropagation();
笨蛋:http://plnkr.co/edit/CyM6d8Or75SqRGavTYyI?p=preview
谢谢!
布伦特
$event.stopPropagation()
阻止调用手风琴组指令的 toggleOpen
事件(展开和折叠手风琴)。
在那种情况下,您可以在 checkboxClicked
活动中 expand/collapse 手风琴组:
$scope.checkboxClicked = function(tab,e){
$scope.accordion.groups[0].isOpen = !$scope.accordion.groups[0].isOpen; //expand and collapse the accordion group
e.stopPropagation();
}
例子