Angular 动态绑定属性
我有这个模板Angular 动态绑定属性,angular,Angular,我有这个模板 <div [fromGroup]="myForm"> <input [formControl]="myFormControl" [formControlName]="formControlName"> </div> 但是,如果formControl为空,我希望执行以下操作: <div [fromGroup]="myForm"> <input [formControlName]="formControlName"> &
<div [fromGroup]="myForm">
<input [formControl]="myFormControl" [formControlName]="formControlName">
</div>
但是,如果formControl
为空,我希望执行以下操作:
<div [fromGroup]="myForm">
<input [formControlName]="formControlName">
</div>
是否有一种方法可以在没有
ngIf
的情况下动态绑定同一模板上的属性?使用ngIf
。检查下面的链接
您可以尝试以下方法:
<div [fromGroup]="formControl?null:myForm">
<input [formControl]="formControl? [formControlName]="formControl?
null:formControlName">
</div>
您可以利用*ngIf
中的then
-子句和else
-子句符号,在条件为true
或false
时显示一个或多个块,如图所示。假设formControl
由真值初始化,则呈现trueBlock
,当formControl
未由null
或undefined
初始化时,则呈现false block
:
<div *ngIf="formControl; then trueBlock; else falseBlock"></div>
<ng-template #trueBlock>
<div>
<input [formControl]="myFormControl">
</div>
</ng-template>
<ng-template #falseBlock>
<div [fromGroup]="myForm">
<input [formControlName]="formControlName">
</div>
</ng-template>
我不想复制模板内容。反应,这很容易,但如何在角度上达到同样的效果?为什么你如此反对使用if?我想知道是否还有其他方法,仅此而已。如果我使用一个ngIf
,那么我必须复制模板内容。如果你能给出一些反馈,这些答案是否有助于你满足你的要求,并且如果是这样,请将该答案标记为正确答案,这将鼓励每一个回答开发人员。谢谢不错:)但是,如果想要有3个或更多可选参数,模板就会变得一团糟。我同意,但您可以提取此代码片段并将其放入组件中formControlName
,myFormControl
和所有其他表单变量可以添加为@Input
。
<div *ngIf="formControl; then trueBlock; else falseBlock"></div>
<ng-template #trueBlock>
<div>
<input [formControl]="myFormControl">
</div>
</ng-template>
<ng-template #falseBlock>
<div [fromGroup]="myForm">
<input [formControlName]="formControlName">
</div>
</ng-template>