Я слежу за онлайн-видеоуроком, в котором настраивается Ember Simple Auth Login.Все работает за исключением отображения ошибок входа в систему (т. Е. 401 несанкционированных) в шаблон.Я проверил код на наличие опечаток, но не могу его найти.
При входе в систему на контроллере я попытался записать e.errors
на консоль, но консоль просто говорит «Не определено».Хотя, если я просто отправляю объект ошибки e
в журнал, я получаю объект ошибки с error.detail
внутри него.Примечание: error.detail
- это то, что я пытаюсь отобразить в форме входа в систему.hsb.
Любая помощь приветствуется!
- Ember: 3.4.5
- Ember Data: 3.4.2
- jQuery: 3.3.1
- Ember Simple Auth: 1.7.0
Controllers / login.js
import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
export default Controller.extend({
session: service('session'),
actions: {
login(attrs) {
this.get('session').authenticate('authenticator:jwt', {
email: attrs.email,
password: attrs.password
}).then(() => {
this.transitionToRoute('index');
}).catch((e) => {
this.set('errors', e.errors); // nothing is being displayed
console.log(e.errors); // Says Undefined in the console
console.log(e); // Display error to console
});
}
}
});
templates / login.hsb
{{login-form user=model errors=errors onsubmit=(action "login")}}
templates / components / login-form.hbs
<div class="slide-out">
<div class="slide-out-card">
<div class="slide-out-heading">
<div class="title">
<h3>Login</h3>
</div>
</div>
<div class="slide-out-content">
<form onsubmit={{action "login"}}>
<!-- this does not display the error message -->
{{#each errors as |error|}}
{{error.detail}}
<div class="error-alert">{{error.detail}}</div>
{{/each}}
<div class="field">
<label>Email:</label>
{{input type="text" placeholder="Email" value=email}}
</div>
<div class="field">
<label>Password:</label>
{{input type="password" placeholder="Password" value=password}}
</div>
<div class="form-footer">
<button type="submit" class="btn-submit">save</button>
</div>
</form>
</div>
</div>
</div>