Angular 2 和 4 中的动态模式验证

Bla*_*ack 5 validation angular

输入验证可以在固定模式下正常工作,例如

<input type="number"
    [(ngModel)]="info.sortOrder"
    pattern="[0-9][0-9]"
    id="sortOrder" name="sortOrder" #sortOrder="ngModel"/>
Run Code Online (Sandbox Code Playgroud)

当通过函数更改要评估的模式时,验证总是失败。不过,函数“customPattern()”被调用。

<input type="number"
    [(ngModel)]="info.sortOrder"
    [pattern]="customPattern()"
    id="sortOrder" name="sortOrder" #sortOrder="ngModel"/>
Run Code Online (Sandbox Code Playgroud)

customPattern() { return "[1-9][0-9]"; }
Run Code Online (Sandbox Code Playgroud)

这是一个错误还是不应该以这种方式工作?

小智 -2

在您的组件中,只需定义一个成员变量,如下所示:

export class AppComponent {
 customPattern = '[1-9][0-9]';
Run Code Online (Sandbox Code Playgroud)

在你的 html 中,使用如下插值:

pattern = "{{customPattern}}"
Run Code Online (Sandbox Code Playgroud)

那应该有效。