Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problema na atividade 05 (O pipe async) da aula 03 (usuário logado e proteção de rotas)

Prezado Flávio,

temos um problema na atividade 05 (O pipe async) da aula 03 (usuário logado e proteção de rotas).

Acompanhei atentamente e revisei as aulas anteriores à citada acima e o código no arquivo header.component.html deveria ser o abaixo (sem o trecho "*ngIf"):

<header class="fixed-top">
    <nav class="navbar navbar-light bg-white">
        <a class="navbar-brand">ALURAPIC</a>
        <div>
            <i class="fa fa-user-circle"></i>
            <a class="ml-2">{{user?.name}}</a>
        </div>
    </nav>
</header>

Ocorre que o código que está aparecendo no vídeo citado é o abaixo (com o trecho "*ngIf"):

<header class="fixed-top">
    <nav class="navbar navbar-light bg-white">
        <a class="navbar-brand">ALURAPIC</a>

        <div *ngIf="user; else login">
            <i class="fa fa-user-circle"></i>
            <a class="ml-2">{{user.name}}</a>
        </div>
        <ng-template #login>
            <span class="navbar-text">
                <a> Please, login!</a>
            </span>
        </ng-template>
    </nav>
</header>

Acredito que este código é mais atualizado que o anterior e faltou acrescentar uma atividade em que o primeiro código é alterado para o segundo. Tentei fazer com base no vídeo, mas está apresentando alguns erros no console. Suponho que está faltando mais alguma alteração em outro arquivo/classe.

O erro apresentado no console depois que fiz a alteração para o segundo código é o abaixo:

Template parse errors:
Can't bind to 'ngIf' since it isn't a known property of 'div'. ("
        <a class="navbar-brand">ALURAPIC</a>

        <div [ERROR ->]*ngIf="user; else login">
            <i class="fa fa-user-circle"></i>
            <a class="ml-2""): ng:///CoreModule/HeaderComponent.html@4:13
Can't bind to 'ngIfElse' since it isn't a known property of 'div'. ("
        <a class="navbar-brand">ALURAPIC</a>
<div [ERROR ->]*ngIf="user; else login">
            <i class="fa fa-user-circle"></i>
            <a class="ml-2""): ng:///CoreModule/HeaderComponent.html@4:13
Property binding ngIf not used by any directive on an embedded template. Make sure that the property name is spelled correctly and all directives are listed in the "@NgModule.declarations". ("
        <a class="navbar-brand">ALURAPIC</a>

        [ERROR ->]<div *ngIf="user; else login">
            <i class="fa fa-user-circle"></i>
            <a class=""): ng:///CoreModule/HeaderComponent.html@4:8
Property binding ngIfElse not used by any directive on an embedded template. Make sure that the property name is spelled correctly and all directives are listed in the "@NgModule.declarations". ("
        <a class="navbar-brand">ALURAPIC</a>
...

Sugiro que revise esta aula incluindo o conteúdo que faltou.

Imagino que a dificuldade apresentada nos dois itens anteriores deste fórum dizem respeito a este problema.

Até o momento, este foi o único problema que encontrei no treinamento. A sugestão da transcrição dos vídeos é muito válida pois são muitos conceitos. O material escrito nos ajuda a relembrar quando estivermos codificando por conta própria.

No mais, parabéns pelo trabalho. São muitos detalhes e vc está explicando muito bem o funcionamento de cada item apresentado. Continue assim.

Obrigado! Valfran

1 resposta
solução!

Achei! está faltando o código abaixo no core.module.ts:

    imports: [CommonModule],

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software