如何防止ngModel覆盖Angular中的自定义css


Angular中的NgModel指令试图覆盖我在代码中提供的自定义CSS。例如,结构为:
<div class=wallpaper>
<mat-toolbar> 
...
</mat-toolbar>
<mat-card>
.
.
.
</mat-card>
</div>

在表单输入中,我立即添加[(ngModel(]来代替[(value(]。它覆盖了垫子工具栏的CSS。因此,垫子工具栏的背景颜色从黑色变为透明。

代码段:

<mat-form-field>    
<mat-select placeholder="Status" **[(***ngModel***)]**="incident.status"  >    
<mat-option style="background-color:grey">-- Select --</mat-option>    
<mat-option style="background-color: green" value="1">Available</mat-option>    
<mat-option style="background-color: orange" value="2">Reduced</mat-option>    
<mat-option style="background-color: red" value="3">Unavailable</mat-option>    
</mat-select>    
</mat-form-field>

解决方案是添加name,这是一个模板引用变量,其形式为声明[(ngModel(]。然后,该变量用于访问元素的DOM属性。

[(ngModel(]在元素值上设置双向绑定,并将其分配给变量。

模板变量帮助您在模板的另一部分中使用模板的一部分中的数据。使用模板变量,您可以执行诸如响应用户输入或微调应用程序表单之类的任务。

更正的代码段:

<mat-form-field>    
<mat-select placeholder="Status" [(value)]="status"  [(ngModel)]="incident.status" name="status">    
<mat-option style="background-color:grey">-- Select --</mat-option>    
<mat-option style="background-color: green" value="1">Available</mat-option>    
<mat-option style="background-color: orange" value="2">Reduced</mat-option>    
<mat-option style="background-color: red" value="3">Unavailable</mat-option>    
</mat-select>    
</mat-form-field>    

最新更新