2017-09-18 44 views
0

我嘗試爲我的表單自定義驗證器。驗證器有兩個參數:第一個參數是點之前的數字的數量,第二個參數是點之後的數字的數量。我用這些參數來進行正則表達式:Angular2:帶有兩個參數的自定義驗證器

new RegExp('^[0-9]{0,' + a + '}([,][0-9]{0,' + b + '})?$') 

https://plnkr.co/edit/v4sWLGRHFijvQH6DfRPa?p=preview

但窗體仍無法正常工作,消息不顯示,如果我不按照正則表達式,同時輸入到輸入。我不知道如何使用兩個參數來使用僞指令來驗證模板驅動的表單。

請幫助

+0

從快速瀏覽一下plunkr,我不認爲你的自定義驗證指令的應用模塊中被聲明,所以它不會得到所攝取形成。 此外,你只傳遞一個參數 - '16,6'到驗證器是好的 - 看起來像那些值沒有被正確解析? 你也可以考慮直接使用帶有內置'pattern'驗證器的正則表達式,而不是自定義選項。 –

回答

1

你在你的自定義input.component @Input而不是@Input(),所以只需添加(),它會正常工作。所以它會是:

//Placeholders for the callbacks which are later provided //by the Control Value Accessor private onTouchedCallback:() => void = noop; private onChangeCallback: (_: any) => void = noop; @Input() inputPattern; //get accessor

+0

它修復錯誤,但組件仍然無法驗證 – kipris