【发布时间】:2021-02-09 08:56:33
【问题描述】:
我正在尝试在 div 容器内单击按钮时插入 HTML 输入元素。我创建了一个指令并在子输入元素上添加了该指令。每当我点击输入元素时,该元素都应该从 DOM 中删除。
我能够实现这种行为,但是每当我单击一个 HTML 输入元素时,所有 HTML 元素都会从 DOM 中删除,这是不期望的。
那么,如何在指令中获取单个 html 输入元素引用? app.component.html
<div class="btn-container">
<button (click)="addInputElement()">Add Input</button>
</div>
<div class="box-container">
<input deleteDir *ngFor="let el of inputEl; let i = index" id={{i}} [value]=el.value>{{el.value}}/>
</div>
app.component.ts
export class AppComponent implements OnInit{
inputEl = [];
addInputElement() {
this.inputEl.push({value: Math.random()});
}
}
app.directive.ts
constructor(private elementRef: ElementRef,
private renderer: Renderer2) { }
@HostListener('click') onClick() {
this.renderer.removeChild(this.elementRef.nativeElement.parentNode,this.elementRef.nativeElement)
}
【问题讨论】:
-
您在组件中应用指令的位置?
-
@Obaid 我已经更新了输入 html 标签。指令是 deleteDir
标签: angular angularjs-directive