Size: a a a

Angular - русскоговорящее сообщество

2020 February 16

В

Вячеслав in Angular - русскоговорящее сообщество
Добрый вечер, подскажите пожалуйста, по reactive forms, делаю сабмит формы,  данные ушли на бек, бек отдал массив ошибок, которые нужно вывести как ошибки по полям, сетаю ошибки на контролы формы через  formControl.setErrors, но визуально они не отображаются в темплейте, хотя код по выводу ошибок есть, ошибки покажутся только если кликнуть на поле и потом убрать фокус
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
> сетаю ошибки на контролы формы через  formControl.setErrors
после всего этого нужно мануально вызвать changeDetection
источник

В

Вячеслав in Angular - русскоговорящее сообщество
Спасибо большое, точно)
источник

AM

Andrew M in Angular - русскоговорящее сообщество
Артур Мудрик
> сетаю ошибки на контролы формы через  formControl.setErrors
после всего этого нужно мануально вызвать changeDetection
Лучше используй markForCheck()
источник

В

Вячеслав in Angular - русскоговорящее сообщество
Ага, через ChangeDetectionRef
источник

AM

Andrew M in Angular - русскоговорящее сообщество
Вячеслав
Ага, через ChangeDetectionRef
Совершенно верно
источник

AM

Andrew M in Angular - русскоговорящее сообщество
Вместо detectChanges
источник

DB

David Backham in Angular - русскоговорящее сообщество
Привет, разбираюсь в ангуляре, есть проблема с canActivate:

Есть компонент dashboard, который выступает как главная

{ path: ' ', component: DashboardComponent, children: dashboardRoutes, canActivate: [CheckRoleGuard] },

внутри в хтмл стоит <router-outlet></router-outlet>

дочерние маршруты выглядят так:

const dashboardRoutes: Routes = [
 // User routes
 { path: 'schedule', component: ScheduleComponent, canActivate: [UserGuard] },
 // Admin routes
 { path: 'world', component: WorldComponent, canActivate: [AdminGuard] },
];

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

Что я делаю сейчас в "CheckRoleGuard":
canActivate() {
   console.log('Проверка на роль');
   if (this.authService.isLoggedIn !== true) {
     this.router.navigate(['sign-in']);
   }
   if (localStorage.getItem('role') === 'admin') {
     this.router.navigate(['/world']);
   }
   return true;
 }

Но получаю бесконечный цикл, что я делаю не так, и куда копать?
источник

VS

Vitaliy Stepanenko in Angular - русскоговорящее сообщество
Всем привет.  Есть такие поля в object  они массивы. Я создаю форму через Form Builder. Создаю FormArray. И на этом у меня трабл. Как мне запихнуть туда  значения которые  я  ввел в инпут?
источник

VS

Vitaliy Stepanenko in Angular - русскоговорящее сообщество
И чтобы  это был иммено массив, а не массив  с object
источник

M

Muhammad in Angular - русскоговорящее сообщество
У меня в приложении есть панель с двумя компонентами внутри, каждый из компонент посылает свои запросы к API. Я хочу сделать чтобы во время запроса отображался процесс загрузки, что можно посмотреть по этому поводу?
источник

И

Илья | 😶 in Angular - русскоговорящее сообщество
Muhammad
У меня в приложении есть панель с двумя компонентами внутри, каждый из компонент посылает свои запросы к API. Я хочу сделать чтобы во время запроса отображался процесс загрузки, что можно посмотреть по этому поводу?
процесс загрузки ?
источник

M

Muhammad in Angular - русскоговорящее сообщество
источник

И

Илья | 😶 in Angular - русскоговорящее сообщество
isLoading = false;

this.isLoading = true;
this.http.post('/cool/path').subscribe((res)=>this.isLoading = false)
источник

И

Илья | 😶 in Angular - русскоговорящее сообщество
@thekiba
как думаешь, стоит ли подобные операции выносить в 3 колбэк (complete) ?
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Илья | 😶
@thekiba
как думаешь, стоит ли подобные операции выносить в 3 колбэк (complete) ?
Если кратко, то не стоит
источник

И

Илья | 😶 in Angular - русскоговорящее сообщество
Вертихвост キバ
Если кратко, то не стоит
tap ?)
источник

И

Илья | 😶 in Angular - русскоговорящее сообщество
:D
источник

M

Muhammad in Angular - русскоговорящее сообщество
Илья | 😶
isLoading = false;

this.isLoading = true;
this.http.post('/cool/path').subscribe((res)=>this.isLoading = false)
сенк у
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Лучше map или что-то аналогичное. Хорошей практикой при работе с rxjs является использование immutable структур и передаче их по потоку, избегая использования грязных контекстов
источник