我正在使用Angular Material中的DatePicker模块,并且在用户单击日期后,我试图使用insertBefore在下一个表格行之前添加元素
示例:
开始于:
<table>
<tbody> //parent
<tr role="row">Stuff</tr> //target
<tr role="row">Stuff</tr> //next row
</tbody>
</table>
开始于:
<table>
<tbody> //parent
<tr role="row">Stuff</tr>
<tr role="row'>NEW ROW</tr> // NEW ROW
<tr role="row">Stuff</tr>
</tbody>
</table>
我遇到以下错误:
TypeError:无法在“节点”上执行“ insertBefore”:参数2为 不是“节点”类型。角材料
您可以在此处找到代码示例: https://stackblitz.com/edit/angular-qvi8e9
这是我得到错误的代码:
模板
<div class="calendar-wrapper">
<mat-calendar #calendar [(selected)]="selectedDate" (monthSelected)="monthSelected($event)" (selectedChange)="onDateChanged($event);"></mat-calendar>
</div>
组件
onDateChanged(date) {
let targetDate = event.currentTarget;
let currentWeek = this.renderer.parentNode(targetDate);
let nextWeekRow = this.renderer.nextSibling(currentWeek);
let parentNode = this.renderer.parentNode(currentWeek);
let p = this.renderer.createElement('p');
const text = this.renderer.createText('Test');
this.renderer.appendChild(p, text);
this.renderer.insertBefore(parentNode, nextWeekRow, p);
}