【发布时间】:2018-09-06 13:37:14
【问题描述】:
@Directive({selector: '[appDropdown]'})
export class DropdownDirective {
@HostBinding('class.show') isShowing = false;
@HostListener('click') toggleShow() {
this.isShowing = !this.isShowing;
}
}
[...]
<div class="row">
<div class="col-md-12">
<div class="btn-group" appDropdown role="group" aria-label="Button group
with nested dropdown">
<div class="btn-group" role="group">
<button id="btnGroupDrop1"
appDropdown
type="button"
class="btn btn-primary dropdown-toggle"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false">
Manage Recipe
</button>
<div class="dropdown-menu" appDropdown>
<a class="dropdown-item" href="#">Shopping List</a>
<a class="dropdown-item" href="#">Edit Recipe</a>
<a class="dropdown-item" href="#">Delete Recipe</a>
</div>
</div>
</div>
</div>
</div>
你好!
我目前正在学习 Angular 6,但我遇到了一个我无法理解的问题。 使用 HostBinding 和 HostListener,我在 html 的不同部分添加了“show”类。 前两个工作正常,点击负责按钮后,此处添加了“show”类:
<div class="btn-group" appDropdown role="group" [...]
<button id="btnGroupDrop1" appDropdown [...]
但不是第三个,这实际上很重要,因为只有那里会显示下拉菜单。 这里
<div class="dropdown-menu" appDropdown>
show-class 不会被添加,我不明白为什么。我使用了 Chromes 检查工具,虽然前两个发生了变化,但第三个没有。
【问题讨论】:
标签: bootstrap-4 angular6