我们有一个下拉组件用于显示ng-content,我们放置了外部click指令以隐藏外部点击的下拉列表
外部点击指令
public onClick(targetElement) {
const clickedInside = this._elementRef.nativeElement.contains(targetElement);
if (!clickedInside) {
this.clickedOutside.emit(null);
}
}
还有另一个用于内联创建/更新/删除列表项的列表组件,此列表在页面级别上运行良好,当我们将其放在下拉列表中时,如果列表为* ngIf,则会遇到问题更新/删除下拉列表会自动关闭bcz,而在单击ngIF时,会在列表上更新ngIF,从dom中删除列表,因此下拉列表关闭。但是我们删除了所有* ngIf并放置了[hidden],现在更新没有问题,删除了它自动关闭的列表项,并触发了外部点击事件
列表项删除方法
onDelete(item: viewModel) {
const index: number = this.views.indexOf(item);
if (index !== -1) {
this.views.splice(index, 1);
}
}