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

问题描述

Angular 中的 NgModel 指令试图覆盖我在代码中提供的自定义 CSS。 例如,结构是:

<div class=wallpaper>
<mat-toolbar> 
...
</mat-toolbar>
<mat-card>
.
.
.
</mat-card>
</div>

在表单输入中,我添加 [(ngModel)] 代替 [(value)]。它会覆盖 mat-toolbar 的 CSS。因此,mat-toolbar 的背景颜色从黑色变为透明。

代码片段:

 <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>    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...