2017-04-20 54 views
0

所以我試圖拆分我的抽象控制值的點。導致其貨幣拆分不是一個函數

,但我仍然得到一個錯誤

這是代碼

@Directive({ 
    selector: '[NumberValidate][ngModel]', 
    providers: [ 
     { provide: NG_VALIDATORS, useExisting: forwardRef(() => NumberValidator), multi: true } 
    ] 
}) 
export class NumberValidator implements Validator { 

    constructor(@Attribute('NumberValidate') public NumberValidate: string, 
     @Attribute('reverse') public reverse: string) { 
    } 

    validate(control: AbstractControl): { [key: string]: any; } { 
     const DATE_REGEX = /([\-\+]{0,1}\d[\d\.\,]*[\.\,][\d\.\,]*\d+)/; 


     if ((control.value && control.value <= 0) || (control.value != null && DATE_REGEX.test(control.value) && control.value.split('.')[1] != null && control.value.split('.')[1].length > 2)){ 
      return { 'incorrectNumberFormat': true }; 
     } 
     return null; 
    } 



} 

這是錯誤

error_handler.js:54 EXCEPTION:錯誤./ RegisterForm類 RegisterForm - 內聯模板:200:28引起的:control.value.split 不是函數

+0

你有什麼'console.log(control.value)'? –

+0

當我把1.0它不會引發錯誤,當我輸入1.003它會引發錯誤...控制檯給我輸入正確的價值,導致它的工作,但我的大學試圖擴大它 – HomeForce

+0

而且它只是**輸出正確的值或者你也得到'null'? 拋出異常之前的打印值是什麼? –

回答

0

我做了一個正則表達式來測試輸入,不再需要拆分了,我認爲問題在於輸入類型是數字而不是字符串......拆分只能用於字符串而不是數字。這就是我認爲的