我需要动态创建一个表。它可能有很多行和单元格。每个单元格可能是以下之一:
简单文本;
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);
}
}
我知道这段代码应该在标签后产生混乱。 我需要创建行,然后插入不同的行模板。