<select> 组件与 ngModel 的奇怪行为

Posted

技术标签:

【中文标题】<select> 组件与 ngModel 的奇怪行为【英文标题】:Strange behavior of <select> component with ngModel 【发布时间】:2019-05-07 03:28:25 【问题描述】:

我正在使用 Angular 6 开发一个 Web 应用程序。如果我创建一个模拟 html &lt;select&gt; 的自定义组件,当它被另一个组件引用时,我无法使其具有默认值! 您可以在以下链接中找到(简单)应用程序代码:stackblitz here

在this question 我问当ngModel 存在时如何设置默认值( &lt;option&gt;selected 属性不再起作用!)。 如您所见,我的input-select 自定义组件 初始化value(链接到ngModel的值)。

value: any = 'default';

不幸的是,组件显示如下:

正如你在控制台中看到的,在提交的时候,打印这个:

我不希望出现这种情况:我想要一个带有预选值的组合框。我不明白这个应用程序有什么问题。

【问题讨论】:

【参考方案1】:

你使用了ngModel,但没有绑定任何东西,所以 Angular 不知道它应该绑定什么值。您应该将ngModel 与包含默认值的property 绑定。

<form #form="ngForm" (ngSubmit)="onSubmit(form.value)">
  <input-select
  name="name"
  [options]="my_options"
  [(ngModel)]="value"
  ></input-select>

  <input type="submit" value="Submit"/>
</form>

工作副本在这里 - https://stackblitz.com/edit/angular-qanpuu

【讨论】:

以上是关于<select> 组件与 ngModel 的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章

react-select 中的 <Select /> 组件看起来很奇怪

freemarker写select组件

Vue封装select下拉组件

Vue封装select下拉组件

freemarker写select组件

freemarker写select组件