我想向用户显示验证错误的数量。
在提交按钮旁边实现“你还有X个错误”这样的消息。
有办法做到这一点吗?
编辑:
我在控制器的上下文中使用ember-validations 2.0.0-alpha.1
和ember 1.8.0
(没有ember数据)。
如果我尝试Sam的解决方案:
this.get('errors.length') // result is [], an empty array
答案 0 :(得分:5)
errors
键包含一个对象,而不是一个数组。此对象的每个键引用模型上的属性并指向一组错误消息,因此您可以执行this.get('errors.firstName.length')
之类的操作。
要查找错误总数,您必须查看每个模型的属性,并总算每个错误的错误数。
http://emberjs.jsbin.com/luzesiyeqi/1/
编辑:
由于此代码.length
,errors
对象的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
。