Dart中的自定义angular2验证器给出控制台错误

时间:2016-02-01 19:26:34

标签: angular angular2-forms

我正在尝试使用Dart制作angular2验证器:

.dart

class CustomValidators {

 static Map<String, bool> wordValidator(Control ctrl)
  {
    if( matches(ctrl.value, r"^[A-Za-z]{1,}[\'\ \,\.\-]*[a-z]*$"))
    {
      return {'wordValidator': true};
    }
  }
 }

其中匹配具有以下定义:

匹配

/// check if string matches the pattern.
bool matches(String str, pattern) {
  RegExp re = new RegExp(pattern);
  return re.hasMatch(str);
}

当我尝试运行验证时,我在控制台中获得以下内容

console ouput

    (anonymous function)    
  ERROR CONTEXT:
    (anonymous function)    
  DartObject
    (anonymous function)    
  <
Uncaught Unhandled exception:
EXCEPTION: Invalid argument(s) in [AST]
ORIGINAL EXCEPTION: Invalid argument(s)
ORIGINAL STACKTRACE:
#0      _JSSyntaxRegExp.hasMatch (dart:core-patch/regexp_patch.dart:174)
#1      matches (package:validator/src/validator.dart:53:13)
#2      CustomValidators.wordValidator (package:epimss_ng2_shared/validators.dart:83:9)
...

(package:epimss_ng2_shared/validators.dart:83:9)指向上面的匹配方法。

由于

1 个答案:

答案 0 :(得分:0)

没有完整的回购案就很难说。

我认为ctrl.value会返回null或其他非String值。