如何在Dart中使用Angular2实现自定义验证器?

时间:2016-02-24 12:54:10

标签: dart angular

我的代码:

<input #rtc="ngForm" 
       type="number" 
       min="1" 
       max="43200" 
       style="text-align: center" 
       [(ngModel)]="device.rtc" 
       ngControl="rtc" 
       required>

ngControl不跟踪号码类型输入有效状态。如何自己为输入实现验证器?

这是我的测试代码:

落镖:

class MyComponent 
{
    Control ctrlRtc = new Control('test', rtcValidator);

    static Map<String, bool> rtcValidator(Control control)
    {
        print(111); 
    } 
}

HTML模板:

<input 
    #deviceRtc="ngForm"
    type="number"
    min="1"
    max="43200"
    style="text-align: center" 
    [(ngModel)]="device.rtc"
    ngControl="ctrlRtc" <!-- also tried 'rtc'-->
>

&#34; 111&#34;从未在控制台中显示...

2 个答案:

答案 0 :(得分:1)

类似的东西:

{{1}}

(未经测试)

答案 1 :(得分:1)

我认为您需要使用ngFormControl而不是ngControl。您不需要#deviceRtc间谍。

<input 
    type="number"
    min="1"
    max="43200"
    style="text-align: center" 
    [(ngModel)]="device.rtc"
    [ngFormControl]="ctrlRtc">

然后,您会看到每次输入更改时都会调用rtcValidator(...)。我不打算解释验证器函数的返回类型,因为Günter已在他的答案中证明了这一点。

我没有尝试运行您的示例,但我确实有a working example您可以尝试。