dart - Angular Dart表单中的细粒度错误消息

标签 dart angular-dart

我有以下形式的一些简单的验证规则:

<form name="signup_form" novalidate ng-submit="ctrl.signupForm()">
  <div class="row">
    <input placeholder="Username"
        name="username"
        ng-model="ctrl.username"
        required
        ng-minLength=3
        ng-maxLength=8>
  </div>
  <div ng-show="signup_form['username'].dirty &&
      signup_form['username'].invalid">
    <!-- ... -->
  </div>

  <button type="submit">Submit</button>
</form>

我想显示requiredng-minLengthng-maxLength的特定错误消息,但是我无法深入到signup_form['username'].errors来获取特定错误。

我可以在 Controller 中正常访问errors映射,因为在标记中我无法获得针对特定错误的句柄。我希望能够大致执行以下操作:

<div ng-show="signup_form['username'].errors['minlength'].invalid>
    <!-- ... -->
</div>

即,在angularJS中类似以下内容:

<div ng-show="signup_form.username.$error.required">This field is required</div>

最佳答案

一个工作的例子

this filter的启发,我再次尝试了这种方法

Angular 0.9.9

@NgFilter(name: 'errors')
class ErrorFilter {
  call(val) {
    if(val != null) {
      return val.map.keys;
    }
    return null;
  }
}

并在标记中

{{signup_form['username'].errors | errors}}

Angt 0.9.10的编辑

@NgFilter(name: 'errors')
class ErrorFilter {
  call(val) {
    if(val != null) {
      return val.keys;
    }
    return null;
  }
}

并在标记中

{{signup_form['username'].errorStates | errors}}

从我在AngularDart Github存储库中观察到的讨论中,我了解到正在有更好的解决方案。

相关的未解决问题
当此https://github.com/angular/angular.dart/pull/771降落时
希望有更好的解决方案。

关于dart - Angular Dart表单中的细粒度错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22535472/

相关文章:

android - 如何在 Flutter 中实现持久秒表?

flutter - 如何去除 appBar 和 body 之间的空间?

xcode - Flutter 生成的 ios 文件版本控制

dart - 角 Dart : cannot cast to a material component

Dart、float for 循环会导致奇怪的结果

image - Flutter:将图像文件从 url 复制到 firebase

flutter - 不能引用setState()flutter

dart - 在 AngularDart 中使用 *ngFor 时如何为每个元素设置自定义模型对象

dart - 在AngularDart中使用dart:html库

dart - 无法让 Angular Dart 路由器工作