Angular 不在非材质选择中工作的角度比较

Angular 不在非材质选择中工作的角度比较,angular,angular-material,Angular,Angular Material,我试图从基于材质的表单控件切换到“普通”控件,但我似乎无法将与方法进行比较以使用此版本 我看了很多(非常简单)的例子,并尝试重现最简单的场景: @组件({ 选择器:'应用程序根', 模板:` {{option}} {{option}} ` }) 导出类AppComponent{ 期权=[1,2,3,4,5]; plancontrol=newformcontrol({id:3,名称:'foo'}); matControl=newformcontrol({id:3,名称:'bar'}); comp(

我试图从基于材质的表单控件切换到“普通”控件,但我似乎无法将
方法进行比较以使用此版本

我看了很多(非常简单)的例子,并尝试重现最简单的场景:

@组件({
选择器:'应用程序根',
模板:`
{{option}}
{{option}}
`
})
导出类AppComponent{
期权=[1,2,3,4,5];
plancontrol=newformcontrol({id:3,名称:'foo'});
matControl=newformcontrol({id:3,名称:'bar'});
comp(o1:any,o2:any):布尔值{
log('comparingplain');
返回o1==o2;
}
compMat(o1:any,o2:any):布尔值{
console.log(“比较材料”);
返回o1==o2;
}
}
mat select
正确触发比较功能,而普通的
select
则不触发。这是一个错误的角度还是我错过了什么

我很清楚,这种特殊的比较是无用的,我只想知道为什么普通版本不会触发

我的Angular版本是7.1.0

<select [formControl]="plainControl" [compareWith]="comp">
  <option *ngFor="let option of options" value="option">{{option}}</option>
</select>

{{option}}


{{option}}
此处示例:

将其从

<select [formControl]="plainControl" [compareWith]="comp">
  <option *ngFor="let option of options" value="option">{{option}}</option>
</select>

{{option}}


{{option}}

这里的示例:

如果使用
[ngValue]
更改正常选择的
,该怎么办?这有帮助吗?(因此它将是
[NgValue]=“option”
)如果可能,请在stackblitz@kha非常感谢,这一整天都在困扰着我。它通过切换到[ngValue]工作。如果你写一个简短的解决方案,我很乐意接受it@bmurauer很高兴听到这个消息。将其添加为解决方案。如果您使用
[ngValue]
更改正常选择的
值会怎么样?这有帮助吗?(因此它将是
[NgValue]=“option”
)如果可能,请在stackblitz@kha非常感谢,这一整天都在困扰着我。它通过切换到[ngValue]工作。如果你写一个简短的解决方案,我很乐意接受it@bmurauer很高兴听到这个消息。添加它作为解决方案。对于努力看到差异的任何人:对于努力看到差异的任何人,它是
value
[ngValue]
:它是
value
[ngValue]