Я новичок в Aurelia, и мне нравится каждая минута кривой наклона. Я использую Skeleton Navigation от Aurelia для приложений es6, и в настоящее время я работаю над простым приложением, в котором пользователь входит в систему и отправляет историю после предоставления определенных деталей. Поток моего приложения довольно прост:
Login Screen --> Screen where user provides phone number --> User submit's story
На моей панели навигации есть «Домой» и «Отправить историю». Однако я хочу скрыть пункт меню «Отправить историю» до тех пор, пока пользователь не укажет свой номер телефона. Таким образом, в основном при отправке номера телефона, если функция возвращает true, мне нужно, чтобы пункт меню отображался.
Я думаю, что есть два способа сделать это. Один из них заключается в привязке элементов навигации к значению true или false в зависимости от того, отправлен ли номер телефона, а другой — в динамическом добавлении маршрута при успешной отправке номера телефона. Какой лучше использовать? И я был бы очень признателен за толчок в правильном направлении.
Я попытался назначить логическую переменную для маршрутов, но это дало смешанные результаты. См. код ниже (я включил только связанный код):
check_phone = false;
configureRouter(config, router) {
config.title = 'Aurelia';
config.map([
{route: ['', 'home'], name: 'home', moduleId: 'home', nav: check_phone, title: 'Home'},
{route: 'story', name: 'story', moduleId: 'story', nav: check_phone, title: 'Submit a Story'}
]);
config.mapUnknownRoutes('/');
this.router = router;
}
phone_submit() {
if(success) this.check_phone = true;
}
Я также пробовал динамически добавлять маршрут, но он не работает:
configureRouter(config, router) {
config.title = 'Aurelia';
config.map([
{route: ['', 'home'], name: 'home', moduleId: 'home', nav: check_phone, title: 'Home'},
]);
config.mapUnknownRoutes('/');
this.router = router;
}
phone_submit() {
if(success)
this.router.addRoute({route: 'story', name: 'story', moduleId: 'story', nav: true, title: 'Submit a Story'})
this.router.refreshNavigation();
}
Пожалуйста, помогите мне в этом. Спасибо за ваше время!