【问题标题】:Angular 8 Reactive Form, Set Default Selected OptionAngular 8 Reactive Form,设置默认选定选项
【发布时间】:2020-04-21 18:46:00
【问题描述】:

抱歉,当我打开对话框模型表单时,我很难在下拉列表中设置默认选定选项。

我有两个模型

  1. 部门
  2. 员工

我还有两个组件,即员工和员工列表,员工列表组件负责加载表中的所有员工列表,员工组件负责加载单个员工..

在员工列表中,我设置了单击事件,该事件调用编辑功能并在表单中填充选定的行以进行编辑。但是当表单打开时,通过选择选项打开的其他字段没有出现,我不知道为什么。

employee.ts

  dept: any;

     ngOnInit() {
      this.loadAllDept();
      this.selected = this.employeeService.form.get('department').value;
      }

    loadAllDept(){
        this.employeeService.getAllDepartments().subscribe(
          data => {
            this.dept = data;
          }
        );
      }

还有我的employee.html

    <mat-grid-tile>
      <div class="reg-control-container">
        <mat-form-field>
          <mat-select [(value)]="selected"  formControlName="depatment" placeholder="Class">
            <mat-option>None</mat-option>
            <ng-container>
              <mat-option *ngFor="let d of dept" value="{{d.id}}"> {{ d.name }}</mat-option>
            </ng-container>
          </mat-select>
        </mat-form-field>
      </div>
    </mat-grid-tile>

但它没有将默认值设置为下拉列表。

如下图所示,我可以输出默认选择和选项列表,但我无法设置。

as shown below

【问题讨论】:

  • 使用属性绑定,比如=>&lt;mat-option [value]=" yourValue "&gt;,然后在组件代码中,可以用相同的值初始化控件
  • 我试过了还是不行..
  • 也许我没有正确关注您的问题,如果您能更具体地了解问题所在,我可以更好地帮助您

标签: angular-material angular8 angular-reactive-forms


【解决方案1】:

看看这个例子,https://stackblitz.com/edit/angular-5short

请记住,您需要使用 Angular 提供的属性绑定语法来绑定选项的值,将要为其分配值的属性包含在方括号 ([]) 中。这样,只要将相同的值传递给所需的 FormControl,它就应该正确应用默认选项。

【讨论】:

  • 我遵循了所有程序,但仍然没有运气.. 我能够将默认值设置为浏览器,但我无法将其设置为默认值
  • 我没有关注,不清楚你尝试了什么,请提供更多上下文
  • 我加了图详细说明
  • 好的,但是你是如何获得selected 对象的呢?如果你得到了,你绝对可以将它分配给控件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
  • 2017-02-05
  • 1970-01-01
相关资源
最近更新 更多