如何通过angular2动态创建表

时间:2019-04-16 01:37:01

标签: angular

我需要动态创建一个表。它可能有很多行和单元格。每个单元格可能是以下之一:

  • 简单文本;

  • input [number];

  • 输入[复选框];

  • 输入[数字] +输入[复选框];

每个输入应具有事件(更改),该事件(更改)具有不同的处理方式(每种类型),并且按公共领域具有[禁用]属性;

我尝试使用以下方法:

  • ElementRef和Renderer2,我无法引用组件的公共字段添加[dissabled]属性。 (我已经在一些答案中了解到了);

  • 有了模板,TemplateRef和ViewContainerRef,通过这种方式,我现在不知道如何在表的动态行中添加模板。

组件

#!/usr/bin/make -f
# https://stackoverflow.com/questions/7123241/makefile-as-an-executable-script-with-shebang
ECHOCMD:=/bin/echo -e
SHELL := /bin/bash

RESULT := $(shell python --version >/dev/null 2>&1 || (echo "Your command failed with $$?"))

ifeq (,${RESULT})
    EXISTS := true
else
    EXISTS := false
endif

all:
    echo EXISTS: ${EXISTS}
    echo RESULT: ${RESULT}

html

@Component({
selector: 'app-root',
  templateUrl: 'app.component.html',
  styleUrls: ['./app.component.css']
})

export class AppComponent implements AfterViewChecked {
  @ViewChild('cell') cell: TemplateRef<HTMLTableCellElement>;
  @ViewChild('table',{read: ViewContainerRef}) table: ViewContainerRef;
  public excluded = false;

  buildTable()
  {
    const q1 = this.cell.createEmbeddedView(null);
    this.table.insert(q1);
  }
}

我知道这段代码应该在标签后产生混乱。 我需要创建行,然后插入不同的行模板。

0 个答案:

没有答案