您好我的模板中有几个*NgIf
条件。基于NgIf我在模板中显示/渲染我的组件(不同类型的表单)。我的一个函数中的示例(下面)
private _onClick(cell:any){
this._enableView = false;
this._enableCreate = true;
this._enableDelete = false;
this._enableEdit = false;
}
这是在模板中启用我的创建表单并隐藏其他表单。但这样做对我来说有点不对劲或多余。有没有更好的方法或建议而不是这种方法?
答案 0 :(得分:4)
如果Leguest建议可以使用单一状态,我建议ngswitch
使用如下:
// Syntax for ngSwitch
<div [ngSwitch]="state">
<div *ngSwitchCase="'create'"> ... </div>
<div *ngSwitchCase="'view'"> ... </div>
<div *ngSwitchCase="'edit'"> ... </div>
<div *ngSwitchCase="'delete'"> ... </div>
<div *ngSwitchDefault> ... </div>
</div>
否则,如果您使用的是Angular 4.x,则可以利用ngIf else
:
// Syntax for ngIf/Else
<div *ngIf=”condition; else elseBlock”>Truthy condition</div>
<template #elseBlock>Falsy condition</template>
答案 1 :(得分:2)
我不确定它是好还是坏,但你可以有一个国家财产,例如 this.state ,包含字符串:
JS
2017-04-20T06:10:59.027+0000 [initandlisten] ERROR: Insufficient free space for journal files
2017-04-20T06:10:59.027+0000 [initandlisten] Please make at least 3379MB available in /data/db/journal or use --smallfiles
HTML
private _onClick(cell:any){
this.state = 'create'
}
所以你将部分代码替换为模板,我希望它能减少你的js代码库