Как получить доступ к переменной маршрута из шаблона в ember - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь выполнить проверку формы в ember, используя действия ember.

Ниже мой add.js (маршрут):

    export default Route.extend({
    errorMessage: '',
    model() {
        return this.store.createRecord('contact');
    },
    actions: {
        saveContact(contact) {
            if (contact.get('firstname') === undefined || contact.get('lastName') === undefined || contact.get('mobile') === undefined) {
                this.set('errorMessage', `Some Fields are blank!!`);
            } else {
                this.set('hasBlank', false);
                this.set('errorMessage', "");
                contact.save().then(() => {
                    this.transitionTo("contacts")
                })
            }
        }
    }
});

Это код моего шаблона:

<h1>Add Contact</h1>
<div class="full-width">
    <div>{{input class="form-tag half-width" type="text" placeholder="Enter firstName" value=model.firstName}}</div>
    <div>{{input class="form-tag half-width" type="text" placeholder="Enter lastName" value=model.lastName}}</div>
    <div>{{input class="form-tag half-width" type="number" placeholder="Enter mobile Number" value=model.mobile}}</div>
    <button class="form-button half-width" {{action 'saveContact' model}}> Add </button>
{{#if errorMessage}}
     <div class="form-tag half-width">{{errorMessage}}</div>
{{/if}}
</div>

В этом шаблоне поле errorMessage не отображается при наличии пустых полей формы. Но оно отображается, если я регистрирую его в своей консоли.

Кто-нибудь может мне помочь?



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

1 Ответ

0 голосов
/ 04 июня 2018

errorMessage и ваше действие saveContact должно быть на соответствующем контроллере, а не на маршруте.Если вы не создали соответствующий контроллер, вы можете сделать это с помощью ember generate controller <controller-name>.Имя вашего контроллера должно соответствовать названию вашего маршрута.

Кстати, вам нужно будет использовать transitionToRoute вместо transitionTo при выполнении этого вызова из действия контроллера.

...