Как отобразить действительное состояние свойства, которое проверено EmberValidations
У меня есть проверка, как это:
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}}
Конечно, в отладчике у меня есть свойство, называемое валидацией, но я не вижу способа его использовать. Также есть способ избежать написания этих методов, таких как AgeValid и canValidateAge(не отображает иконки, если находится в "нетронутом" состоянии).
беседка:
"devDependencies": {
"broccoli-asset-rev": "^2.0.2",
"broccoli-merge-trees": "^0.2.1",
"broccoli-static-compiler": "^0.2.1",
"ember-cli": "0.2.5",
"ember-cli-app-version": "0.3.3",
"ember-cli-babel": "^5.0.0",
"ember-cli-content-security-policy": "0.4.0",
"ember-cli-dependency-checker": "^1.0.0",
"ember-cli-htmlbars": "0.7.6",
"ember-cli-ic-ajax": "0.1.1",
"ember-cli-inject-live-reload": "^1.3.0",
"ember-cli-less": "^1.3.3",
"ember-cli-qunit": "0.3.13",
"ember-cli-uglify": "^1.0.1",
"ember-data": "1.0.0-beta.17",
"ember-disable-proxy-controllers": "^0.7.0",
"ember-export-application-global": "^1.0.2",
"ember-validations": "^2.0.0-alpha.3"
}
1 ответ
Вы можете наблюдать errors
имущество.
isAgeValid: Em.computed.gt('errors.age.length', 0)
Если вы хотите показывать проверки только после касания поля ввода, я также предлагаю этот пост в блоге, где вы просто показывает ошибки только после focusOut
: http://www.teamrarebit.com/blog/2015/02/14/ember-inline-validation-errors
Обновить:
Недостающая часть, @SuperUberDuper:
продлить (EmberValidations.Mixin)