计算Ember-Validations有多少错误?

flo*_*ain 1 validation ember.js

我想向用户显示验证错误的计数.

它是在提交按钮旁边实现"你有X个错误"的消息.

有没有办法做到这一点 ?

编辑:

我在控制器的上下文中使用ember-validations 2.0.0-alpha.1和ember 1.8.0(没有ember数据).

如果我尝试Sam的解决方案:

this.get('errors.length') // result is [], an empty array
Run Code Online (Sandbox Code Playgroud)

Nud*_*oll 5

所述errors键保持物体,而不是阵列.此对象的每个键引用模型上的属性并指向一组错误消息,因此您可以执行类似的操作this.get('errors.firstName.length').

要查找错误总数,您必须查看每个模型的属性并总结每个错误的错误数.

http://emberjs.jsbin.com/luzesiyeqi/1/


编辑:

由于以下代码.length,errors对象的属性返回一个空数组:https://github.com/dockyard/ember-validations/blob/master/addon/errors.js.从字面上看,您在errors对象上访问的任何键都将初始化为空数组.


编辑2:

根据您在评论中所说的不想循环访问属性的内容,您可以通过查看模型的validators属性以另一种方式执行此操作.看看这个例子:

numErrors: function () {
  var errorCounts = this.get('model.validators').mapBy('errors.length');
  return errorCounts.reduce(function (a, b) { return a + b }, 0);
}.property('model.validators.@each.length')
Run Code Online (Sandbox Code Playgroud)

我也更新了JSBin:

http://emberjs.jsbin.com/jucuxodaga/1/edit?html,js,output