0

我编写了一个用于搜索配置文件的自定义指令,其中包括:

标题 div:

<div>Search Profiles</div>

用于输入搜索词的输入文本框

<div><input /></div>

结果项 div:

<div>
    <div ng-repeat="foundUser in foundUsers">
        <img ... />
        <div>{{foundUser.FullName}}</div>
        <button>Invite</button>
    </div>
</div>

我需要在单击图像时像下拉菜单一样打开 drv。

<img class="dropdown-toggle" src="/Images/Icons/OpenSearchProfilesIcon.png"
     data-toggle="dropdown" />
<search-profiles class="dropdown-menu"></search-profiles>

因此,该指令确实在单击 img 时打开,并在单击文档中的其他位置时关闭,正如预期的那样。

问题

当单击输入文本框以输入搜索词时,以及单击标题 div 以及单击邀请按钮时,drv 也会关闭,但所有这些类型的单击实际上不应导致drv 被关闭。

应该关闭它的点击是点击自定义指令 div 之外的所有内容。

任何想法我应该如何做到这一点,而不涉及 $document 点击的听众并决定点击是否在驱动程序之外,保持纯 bs?

此外,如果我希望在单击邀请按钮时也关闭 drv,而不是在单击标题和输入文本框时关闭 - 应该怎么做?

谢谢

4

1 回答 1

0

好的,我知道了。

<search-profiles ng-click="onSearchProfilesClick($event)" class="dropdown-menu">                                                                               
</search-profiles>

在控制器中:

scope.onSearchProfilesClick = function ($event) {
    $event.stopPropagation();
}
于 2017-03-15T12:03:19.207 回答