validation - Angular2/ Material 2 : md-input-container label is not resetting float when value is changed programmatically

标签 validation angular typescript angular2-forms angular-material2

我在使用@angular/material 的 md-input-containers 和响应式表单模块时遇到问题。

我正在制作一个包含三个 md-inputs 的登录表单,它们都使用 FormBuilderFormGroup 绑定(bind)到值。那里一切正常。

我的问题是,在 ngSubmit 函数中,如果输入的凭据无效,我将重置表单。使用 FormGroup.reset() 方法会将值重置为默认值,但是 md-input-containers 中的 float 标签是没有重置到他们原来的地方,因为他们应该在一个空旷的地方。我猜 Material Design 指令正在寻找一个模糊事件来更新它,但我不知道,而且我不知道如何强制它发生。

这是 ngSubmit 函数:

  submitForm(username: string, password: string, companyID: any):void {

    this.userService.login(username, password, companyId)
      .then(() => {
        this.router.navigate(['main']);
      })
      .catch(() => {
        this.loginForm.reset();
      })
    }

在调用 this.loginForm.reset() 时,表单将重置为默认值(空字符串),但标签仍将 float :

Labels still float. I reset Company ID for reference.

知道如何解决这个问题吗?我真的不想调用 ElementRef,尽管我已经尝试这样做来强制模糊,但并没有解决问题。

最佳答案

尝试使用 md-input 控件而不是包装在 md-input-container 中的输入。 它对我有用。

关于validation - Angular2/ Material 2 : md-input-container label is not resetting float when value is changed programmatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41453604/

相关文章:

asp.net - 为什么只有在属性验证通过时才调用 IValidatableObject.Validate?

angular - 'mat-toolbar' 不是已知元素 :

typescript - 从类的属性和方法中提取特定类型并将其添加到接口(interface)

jquery - 向 JQueryStatic 接口(interface)添加属性

php - 如何确保我的用户数据在 PHP 和 MySQL 中有效?

java - 检测 JTextField "deselect"事件

javascript - 将 jQuery 验证应用于 SharePoint 可视化 Web 部件

animation - Angular 2 : Delete element from the list animation

javascript - 什么时候移除组件中的骨架屏幕?

javascript - 如何使用 ngFor 遍历 JSON 嵌套对象