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

Aula 6 - 02 - Componetes

Estou tendo um problema referente ao botao de remover.

Fiz tudo conforme a explicação. Mais esta ocorrendo esse erro no console do navegador self.parent.context.remove is not a function

botao.component.html

<button (click)="executaAcao()" class="btn {{estilo}}" [type]="tipo" [disabled]="desabilitado">{{nome}}</button>

botao.component.ts

import { Component, Input, Output, EventEmitter } from '@angular/core';

@Component({
    moduleId: module.id,
    selector: 'botao',
    templateUrl: './botao.component.html'
})
export class BotaoComponent {

    @Input() nome: string = 'Ok';
    @Input() estilo: string = 'btn-default';
    @Input() tipo: string = 'button';
    @Input() desabilitado: boolean = false;
    @Output() acao = new EventEmitter();

    executaAcao() {

        if(confirm('Tem certeza?')) {
            this.acao.emit(null); 
        }
    }
}
6 respostas
solução!

Pode ficar tranquilo que mais de 2000 alunos passaram dessa parte sem problema algum, vamos descobrir onde está o erro.

Você postou apenas o código do componente, mas não postou o código (ts e html) de quem esta usando. A mensagem de erro diz:

self.parent.context.remove

Parece que você não criou a função remove no parent que vai utilizar o componente.

Beleza Flavio, bom saber que tantos alunos passaram dessa parte, Irei verificar a função remove pra ver se consigo solucionar meu problema.

Posta o código do template e do TS.

Flavio, verifiquei a função de remover. Estava diferente.

Agora está funcionando.

   remove(foto: FotoComponent): void {

        this.service.remove(foto)
            .subscribe(
                fotos => {

                    let novasFotos = this.fotos.slice(0);
                    let indice = novasFotos.indexOf(foto);
                    novasFotos.splice(indice, 1);
                    this.fotos = novasFotos;
                    this.mensagem = 'Fotos removida com sucesso';
                },
                erro => {
                    console.log(erro);
                    this.mensagem = 'Não foi possivel remover a foto';
                });
    }

Excelente! Agora é continuar com os estudos!

Abraço Giovanni, sucesso e bom estudo.

Obrigado, Flavio!