Ember.js 如何呈现由EmberValidations验证的属性的有效状态
我得到了如下验证:Ember.js 如何呈现由EmberValidations验证的属性的有效状态,ember.js,ember-validations,Ember.js,Ember Validations,我得到了如下验证: import Ember from 'ember'; import EmberValidations from 'ember-validations'; export default Ember.Controller.extend(EmberValidations, { validations: { age: { presence: {message: 'Enter your age'} } }, isAgeValid: funct
import Ember from 'ember';
import EmberValidations from 'ember-validations';
export default Ember.Controller.extend(EmberValidations, {
validations: {
age: {
presence: {message: 'Enter your age'}
}
},
isAgeValid: function () {
//some chek
}.property('age'),
canValidateAge: function () {
//some check to determine if to render icons
}.property('age')
}
在我的模板中:
{{input id="age" placeholder="Age" value=age class="form-control input-md"}}
<span class="help-block">help</span>
{{#if canValidateAge}}
<span class="{{if isAgeValid 'glyphicon-ok' 'glyphicon-remove'}} form-control-feedback glyphicon"></span>
<span class="field-error text-danger help-block">{{errors.age.[0]}}</span>
{{/if}}
您可以观察
错误
属性
isAgeValid: Em.computed.gt('errors.age.length', 0)
如果您希望仅在触摸输入字段后显示验证,我还建议您在这篇博文中仅在focusOut
之后显示错误:
更新:
缺少的部分,由@SuperUberDuper编写:
扩展(EmberValidations.Mixin)
谢谢,但是我的错误对象在控制器中未定义。是否无法初始化余烬验证?嗯。。。试着像这样输出模板中的errors对象,{{errors.age}如果开发人员工具中没有错误,并且可以使用{age}打印age属性,我建议调试到ember validations的presence validator中init和call方法,看看它是否被调用:我必须添加extend(EmberValidations.MixinI已经想到了这一点,但后来我查看了文档,在任何地方都没有找到Mixin的用法……很好,它现在可以工作了:-)
isAgeValid: Em.computed.gt('errors.age.length', 0)