gpt4 book ai didi

javascript - AngularJS - 点击事件(在指令中)在父级的任何地方被点击时触发

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:16:07 25 4
gpt4 key购买 nike

我会尽力解释我的问题 - 请耐心等待。

这整件事是一个文件选择指令:

enter image description here

该指令有一个 ng-transclude 组件,其中包含一些指令,包含在它们自己的 div 中。

父指令:

<div class="extra-cells">
<div ng-transclude class="extra-cells-row"></div>
</div>

ng-transclude 内容:

<div file-upload-directive>
<div bo-if="config.drive">
<div google-picker>
<div>Google Drive</div>
</div>
</div>

<div bo-if="config.dropbox">
<div dropbox-chooser>
<div>Dropbox</div>
</div>
</div>

<div bo-if="config.link">
<div ng-click="selectLink()">
<div>Paste a link</div>
</div>
</div>
</div>

ng-transclude 内容(视觉):

enter image description here

当我单击突出显示部分中的任意位置时,会触发违规 (dropbox) 指令中的单击事件。

dropboxChooserModule.directive('dropboxChooser', function(dropboxChooserService) {
return {
priority: 1,
restrict: 'EA',
transclude: true,
scope: {
widget: '=',
options: '=',
extensions: '=',
},
template: '<div class="">' +
'<div ng-transclude></div>' +
'<input type="dropbox-chooser" name="selected-file"/></div>',
link: function postLink(scope, element, attrs) {
element.bind("click", function(event) {
dropboxChooserService.choose({
success: function(files) {},
cancel: function() {}
})
});
},
replace: true
};
});

enter image description here

问题自然是什么导致它触发以及我如何让它停止。它应该仅在单击带有 dropbox 指令的元素时触发。

最佳答案

删除指令中的输入元素似乎“解决”了问题。

关于javascript - AngularJS - 点击事件(在指令中)在父级的任何地方被点击时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30537940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com