TypeError:无法在“节点”上执行“ insertBefore”:参数2的类型不是“节点”。角材料

时间:2019-08-02 16:51:33

标签: javascript angular angular-material angular7

我在使用什么

  • 角度
  • 角材料

我要实现的目标

我正在使用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);
  }

0 个答案:

没有答案