Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 选择不工作(被动形式)的默认选项_Angular - Fatal编程技术网

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