Сообщение об ошибке формы ember-cp-validations не отображается

Я пытаюсь проверить ввод в форме, используя ember-cp-validations. Кажется, что действительная проверка работает, но я не могу отобразить сообщение об ошибке в шаблоне. Я довольно новичок в ember в целом, и я предполагаю, что я не правильно использую модель в помощнике v-get.

Вот моя модель:

import DS from 'ember-data';
import { validator, buildValidations } from 'ember-cp-validations';

const Validations = buildValidations({
    name: validator('presence', true),
})

export default DS.Model.extend(Validations, {
    name: DS.attr('string'),
});

Вот действие, которое я выполняю в своем контроллере при отправке формы:

//tried to get character model here to make validation work
let character = this.get('model');

//create new character record to store
let newCharacter = this.store.createRecord('character', {
    name: name,
});

//validating here
newCharacter.validate()
    .then( ({validations}) => {
        console.log(validations)
        if(validations.get('isValid')) {
            console.log('form is valid')
            //record will be saved here
        }else{
            console.log('form is invalid')
        }
    })

В этом действии, когда поле имени пусто, оно говорит, что форма неверна, как и ожидалось.

Наконец, я пытаюсь показать ошибку здесь:

{{input type="text" class="form-control" value=name placeholder="Character Name" focus-out=(action (mut showNameError) true)}}
  {{#if showNameError}}
    <div class="error">
      {{v-get character 'name' 'message'}}
    </div>
  {{/if}}

Здесь создается div, когда вы теряете фокус на поле, но сообщение никогда не показывается. Из того, что я понимаю, аргументами для помощника здесь должны быть модель, поле, которое вы проверяете, и затем сообщение, которое должно отображаться. Тот факт, что он знает, что форма недействительна, но сообщение никогда не показывается, заставляет меня поверить, что я что-то неправильно понимаю, и на самом деле не правильно обращаюсь к модели персонажа в помощнике v-get.

После прочтения и просмотра некоторых уроков по ember-cp-validations я все еще застрял. Любая помощь будет оценена.

Заранее спасибо!

РЕДАКТИРОВАТЬ: Я хотел добавить больше информации после нескольких часов, чтобы решить эту проблему. Я создал новое действие в своем контроллере, очень похожее на пример со страницы github ember-cp-validations, расположенной здесь:

https://github.com/offirgolan/ember-cp-validations/blob/7433fdb2ce7d22f956ca97a9b3291fe9c6637446/tests/dummy/app/controllers/index.js

Я также удостоверился, что импортирую и определяю всю необходимую информацию в моем файле модели. Я сделал это, чтобы выглядеть в точности как их пример здесь:

https://github.com/offirgolan/ember-cp-validations/blob/7433fdb2ce7d22f956ca97a9b3291fe9c6637446/tests/dummy/app/models/user.js

Однако когда я запускаю действие, мне выдается ошибка model.validate - это не функция. Я не понимаю, почему в их примере они могли бы выполнить проверку для своей модели, но я не смог бы для моей. Чем больше я пытаюсь решить эту проблему, тем больше я запутываюсь.

0 ответов

Другие вопросы по тегам