Задать вопрос
Ответы пользователя по тегу Angular
  • Как следить за элементом в компоненте Angular?

    Как написали выше, чаще всего следить надо не за самим элементом а за данными, которые на него влияют. Но если всё-таки надо (например если нужно дождаться загрузки внутренностей стороннего компонента), то можно сделать костыль - например, по таймауту опрашивать нативный элемент:

    1) В темплейте дайте элементу id с решёткой:
    < div #myElement >...< /div >

    2) В коде компонента получите доступ к этому элементу:
    @ViewChild('myElement')
    public myElement: ElementRef;

    3) По таймеру проверяйте какое-нибудь свойство у JS-модели элемента (его размеры или наличие у него дочерних элементов):
    let rect = this.container.nativeElement.getBoundingClientRect();
    if (rect.width > 0) {
    console.log('Что-то изменилось!');
    }
    Ответ написан
    Комментировать
  • Как правильно переправить юзера в окно авторизации?

    @nochnoy Автор вопроса
    Правильное решение - сделать Guard и подсунуть его во все защищаемые роуты параметром canActivate:

    { path: 'page1', component: Page1Component, canActivate: [AppGuard] },


    В самом Guard'е есть метод canActivate() который и решает, можно ли сейчас войти в данный роут. Если нельзя, то метод должен вернуть false - но перед этим дёрнуть this.router.navigate(['/loginPage']);
    Т.е. редирект происходит внутри гварда.

    Подробнее о гвардах например здесь: metanit.com/web/angular2/7.7.php
    Ответ написан
    Комментировать