Я пытаюсь создать компонент, который создает поле ввода для определенного поля на Ember.model.Соблюдать свойство error на Ember.Model
При вызове model.save()
Я хотел бы отобразить возможные сообщения об ошибках относительно этого поля, прямо под полем. Но я не могу получить уведомление, когда мое свойство Errors
на Ember.Model изменится.
Есть ли способ ознакомиться с недвижимостью model.errors
, чтобы отобразить ошибки?
Я пробовал:
- .Property Свойство { 'model.errors} и Ember.computed
- .observes ('model.errors')
- .observes ('модель') на. («becameInvalid»)
Я думаю, что я довольно близко, так как мои ошибки с ниже решения, в настоящее время dipslayed, однако, когда я изменить свой вклад в чем-то другом недействительных, и попытаться сохранить снова, мой оригинал ошибки не очищаются, а новые - не g et. Когда я поставил точки останова или console.logs, я вижу, что код никогда не входит в этот раздел для отображения ошибок снова, поэтому я предполагаю, что вычисленное свойство не работает. И мой шаблон никогда не обновляется новыми ошибками.
Вот мой код на данный момент:
Мой компонент: компоненты/InputField-text.js
import Ember from 'ember';
export default Ember.Component.extend({
value: Ember.computed('model', 'field', {
get: function() {
return this.get('model').get(this.get('field'));
},
set: function(key, value) {
this.get('model').set(this.get('field'), value);
return value;
}
}),
errors: function(){
var errors = this.get('model.errors');
console.log(errors)
return errors.errorsFor(this.get('field'));
}.property('model.errors', 'model', 'field')
});
мой компонент в шаблон: шаблоны/Компоненты/InputField-text.hbs
{{input type='text' value=value class='form-control' placeholder=placeholder}}
{{#each errors as |error|}}
<div class="error">
{{error.message}}
</div>
{{/each}}
И для полноты кода, который я использую для внедрения компонент в шаблоне:
{{inputfield-text model=model field='name'}}