【发布时间】:2016-09-11 01:56:51
【问题描述】:
我正在尝试创建嵌套树视图。
@Component({
selector: "myItem",
template: `
<li *ngIf="!Array.isArray(data)"> {{data.text}} </li>
<ul *ngIf="Array.isArray(data)">
<myItem *ngFor="let x of data" [(data)] = "x.data"> </myItem>
</ul>
`
})
export class MyItemComponent {
static root = true;
data: any;
constructor() {
if (MyItemComponent.root) {
this.data = [
{ text: "foo" },
[{ text: "bar" }, { text: "foo" }]
];
MyItemComponent.root = false;
}
}
}
错误是
无法绑定到“数据”,因为它不是已知的原生属性 ("ta.text}} ][数据] = "x.data"> "): 我的项目组件
编辑:如何实现删除按钮?模板应如下所示:
<li *ngIf="!Array.isArray(data)"> {{data.text}} <button (click)="clicked()"> delete me</button> </li>
<ul *ngIf="Array.isArray(data)"> <button (click)="clicked()"> delete me</button>
<myItem *ngFor="let x of data" [(data)] = "x.data"> </myItem>
</ul>
click 函数是什么?
【问题讨论】:
-
我认为逻辑上存在缺陷,
data在两种情况下都是一个数组(外部数组,内部数组),所以!isArray(data)将始终为假,li将失败每次都渲染。
标签: angular typescript