Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何呈现由EmberValidations验证的属性的有效状态_Ember.js_Ember Validations - Fatal编程技术网

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)