Сообщение об ошибке формы ember-cp-validations не отображается - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь проверить ввод в форме, используя 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 не является функцией.Я не понимаю, почему в их примере они могли бы запустить проверку на своей модели, но я не смог бы на моей.Чем больше я пытаюсь решить эту проблему, тем больше я запутываюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...