Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Change Detection

Bom dia! Percebi que na criação do método de remoção das fotos no listagem.component.ts, não foi necessário a criação da propriedade novasFotos com o uso do slice para a view ser atualizada automaticamente. O angular mudou isso? vou da o exemplo abaixo, eu sei apenas isso:

remove(foto: FotoComponent): void{
        this.service.remove(foto)
        .subscribe(
            fotos =>{
                let indiceDaFoto = this.fotos.indexOf(foto);
                this.fotos.splice(indiceDaFoto, 1);
                console.log('Foto removida com sucesso');
            }, erro => console.log(erro));
    }

ao invés disso:

remove(foto) {
        this.service
            .remove(foto)
            .subscribe(
                () => {
                    console.log('Foto removida com sucesso');
                    let novasFotos = this.fotos.slice(0);
                    let indice = novasFotos.indexOf(foto);
                    novasFotos.splice(indice, 1);
                    this.fotos = novasFotos;
                }, 
                erro => console.log(erro)
            );
    }

e funcionou! a view atualizou automaticamente.

2 respostas
solução!

Angular usa Zones para fazer o mecanismo de detecção de mudanças e atualização da view. Até onde eu me lembro, era necessário realizar a atribuição da nova lista na propriedade. Se você fez sem realizar esse passo e funcional, o Zones esta mais esperto do que eu imagina.

Se você tem certeza que esta tudo OK, pode fazer assim sem problema, meu aluno.

Sucesso e bom estudo!

Obrigado :)