计算Ember-Validations有多少错误?

时间:2014-11-19 11:44:26

标签: 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

2 个答案:

答案 0 :(得分:5)

errors键包含一个对象,而不是一个数组。此对象的每个键引用模型上的属性并指向一组错误消息,因此您可以执行this.get('errors.firstName.length')之类的操作。

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

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


编辑:

由于此代码.lengtherrors对象的errors属性返回一个空数组。从字面上看,您在validators对象上访问的任何键都将初始化为空数组。


编辑2:

根据您在评论中所说的不想循环浏览属性的内容,您可以通过查看模型的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') 属性以另一种方式执行此操作。看看这个例子:

{{1}}

我也更新了JSBin:

https://github.com/dockyard/ember-validations/blob/master/addon/errors.js

答案 1 :(得分:-1)

如果您使用的是ember-validations,这很简单:this.errors.length