Angular 选择不工作(被动形式)的默认选项
我正在尝试设置反应式表单中的Angular 选择不工作(被动形式)的默认选项,angular,Angular,我正在尝试设置反应式表单中的Select的默认值,但运气不好。我在Stackoverflow中看到了很多关于这个主题的讨论,似乎我需要做的就是添加[selected]=“(expression)”,但解决方案对我来说并不奏效。我做错了什么 // Note: itm[6] == ["Option1", "Option2, "Option3"], itm[5]=="Option2" (i.e., the default) <select name="foo" formControlName=
Select
的默认值,但运气不好。我在Stackoverflow中看到了很多关于这个主题的讨论,似乎我需要做的就是添加[selected]=“(expression)”
,但解决方案对我来说并不奏效。我做错了什么
// Note: itm[6] == ["Option1", "Option2, "Option3"], itm[5]=="Option2" (i.e., the default)
<select name="foo" formControlName="foo">
<option *ngFor="let g of itm[6]; let idx = index" [value]="idx" [selected]="g==itm[5]">{{g}}</option>
</select>
//注意:itm[6]=[“Option1”、“Option2”、“Option3”]、itm[5]==“Option2”(即默认值)
{{g}
对于反应式表单,您可以通过设置表单控件本身而不是尝试设置select属性来实现这一点,表单控件值的任何更改都将反映到html中,值的任何更改都将设置要选择的选项,如果该值不在选项中,则该选项将显示为空
this.form.get('foo').setValue('Option2')
demo对于被动表单,您可以通过设置表单控件本身而不是尝试设置select属性来实现这一点,表单控件值的任何更改都将反映到html中,值的任何更改都将设置要选择的选项,如果该值不在选项中,则该选项看起来将为空
this.form.get('foo').setValue('Option2')
演示您可以尝试添加[selected]=“g==“Option2”以选择选项。或者您可以将默认值修补到formcontrol this.myForm.patchValue({ foo:“选项2”
});您可以尝试添加[selected]=“g==“Option2”以选择选项。或者您可以将默认值修补到formcontrol this.myForm.patchValue({ foo:“选项2”
})原来我的问题和我原来的帖子一样:
[value]=idx
,所以我要么把它改成[value]=g
,要么用setValue
或patchValue原来我的问题和我原来的帖子一样:[value]=idx
,因此我需要将其更改为[value]=g
,或者使用setValue
或patchValue
中的索引号。非常感谢。我尝试了,但仍然不起作用。我将代码放在ngOnInit中(我也在ngAfterContentInit中尝试了)。因为我使用异步服务获取进入的数据,所以我尝试将修补程序尽可能深入代码,以防出现时间问题。但没有任何效果。还有其他想法吗?如果要修补值以形成控件,则不需要[selected]在选项中。在修补值之后,您需要实现更改检测。非常感谢。我尝试过,但仍然不起作用。我将代码放在ngOnInit中(我也在ngAfterContentInit中尝试过)。因为我使用异步服务获取进入的数据,所以我尝试将修补程序尽可能深入代码,以防出现时间问题。但没有任何效果。还有其他想法吗?如果要修补值以形成控件,则不需要[selected]在选项中。修补值后,您需要实现更改检测。非常感谢。如下所示,我已经尝试了所有操作,但仍然不起作用。我也尝试了上面的语法,而不是修补值。在组件中创建控件后,可以随时调用setValue
或patchValue
吗?我将为您创建一个演示you@Crowdpleasr我已经用live demo更新了我的答案,希望这将有助于感谢您和@Armin的回答。事实证明,我的问题与我原来的帖子一样:[value]=idx
,因此我需要将其更改为[value]=g
或使用setValue
或patchValue
中的索引号非常感谢。如下所示,我已经尝试了所有方法,但仍然无效。我也尝试了上面的语法,而不是patchValue。在组件中创建控件后,可以随时调用setValue
或patchValue
吗?我会的为创建一个演示you@Crowdpleasr我已经用live demo更新了我的答案,希望这将有助于感谢您和@Armin的回答。事实证明,我的问题与我原来的帖子一样:[value]=idx
,因此我需要将其更改为[value]=g
或使用setValue
或patchValue