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>