2017-04-19 57 views
1

随着Material 2.0.0-beta.3的发布发布了新的md-error指令以显示错误消息(#3560)。 md-error似乎只显示错误消息,如果控制是touchedinvalid。这可能是一个很好的默认设置,但在某些情况下,我希望能够在显示错误时自定义。我可以自定义显示错误消息的条件吗?即使控件未触及,也允许md-error显示错误消息

在角文档Show and hide validation error messages下他们提到

通过绑定名称控件的属性到消息元素的隐藏属性

控制名称错误消息的曝光率,一个解释有效的选择可能是:[hidden]="name.valid || name.pristine"(不依赖于touched)。我想完成同样的事情,但是使用Material来代替文档中使用的Boostrap。

请参阅我的Plunker了解我有两个输入控件的实况示例。每个需要至少2个字符。我希望在用户键入第一个字符后直接显示错误。第一个输入控件使用md-error,但我无法获得所需的行为。 第二输入控制的用途和使用md-hint旧的解决办法,其中一个可以通过使用*ngIf做到这一点:

<md-hint *ngIf="fc2.dirty && fc2.invalid"> 
    Name must be at least 2 characters. 
</md-hint> 

回答

0

不,这是不可能的定制当MD-错误应该是可见的。因此,我已将此作为feature request提交。

如果你想改变的是,错误应该被直接显示在控制变脏,@ HopScotch47了GitHub上的一个很好的解决方法来设定控制为感动在构造函数中:

const ctrl = this.form.controls['ctrlName']; 
ctrl.markAsTouched();