Html 正在执行两个不同的操作

Html 正在执行两个不同的操作,html,node.js,angular,Html,Node.js,Angular,在这段代码中,我有一个方法openItem(anuncio,operacao)“当我单击将执行该操作的对象时运行。在这种情况下,我不明白为什么在运行(单击)=”checkFavorite(广告)时他也执行该操作。单击verifyFavorite操作应该只运行它,而不运行openItem。有人能帮助我吗?谢谢 <div class="ali-container"> <div class="ali-linha"> <div

在这段代码中,我有一个方法openItem(anuncio,operacao)“当我单击将执行该操作的对象时运行。在这种情况下,我不明白为什么在运行(单击)=”checkFavorite(广告)时他也执行该操作。单击verifyFavorite操作应该只运行它,而不运行openItem。有人能帮助我吗?谢谢

    <div class="ali-container">
        <div class="ali-linha">
            <div class="ali-capa-livro">
                <button *ngIf="operacao !== vis" class="ali-capa-livro-btn" (click)="openItem(anuncio, operacao)">
                    <img src="{{anuncio.publicacao.imagem}}" width="40%" height="40%" />
                </button>
                <button *ngIf="operacao === vis" class="ali-capa-livro-btn">
                    <img src="{{anuncio.publicacao.imagem}}" width="40%" height="40%" />
                </button>
            </div>
            <div class="ali-detalhes-livro">
                <div class="ali-titulo-livro">{{anuncio.publicacao.titulo}}</div>
                <div class="ali-autores-livro linha-unica-elipissis">{{anuncio.publicacao.autores}}</div>
                <span class="ali-preco">{{anuncio.preco | currency:'R$':'code'}}</span>
                <span class="ali-conservacao">({{anuncio.tipoConservacao}})</span>
                <div class="ali-anunciante linha-unica-elipissis">por {{anuncio.usuario.nome}}</div>
                <div class="ali-anunciante linha-unica-elipissis">{{anuncio.statusAnuncio}}</div>
                <span>Anúncio: {{anuncio.tipoAnuncio.nome}} {{anuncio.tipoAnuncio.valor | currency:'R$':'code' }}</span>
            </div>

            <div *ngIf="operacao !== vis">
                <button mode="ios" class="botao-excluir-anuncio" (click)="excluir(tipo, anuncio._id, favorito)" ion-button
                    round text-center item-end>
                    <ion-icon name="trash" item-end></ion-icon>
                </button>
            </div>

        </div>

    </div>

    <div *ngIf="operacao === vis">
        <div *ngIf="!anuncio.favorito">
            <button mode="ios" class="botao-naoefavorito-anuncio" (click)='verificarFavorito(anuncio)' ion-button round
                text-center item-end>
                <ion-icon name="ios-heart-outline" item-end></ion-icon>
            </button>
        </div>
        <div *ngIf="anuncio.favorito">
            <button mode="ios" class="botao-favorito-anuncio" (click)='verificarFavorito(anuncio)' ion-button round
                text-center item-end>
                <ion-icon name="ios-heart" item-end></ion-icon>
            </button>
        </div>

        <div *ngIf="apenasexcluir === 1">
            <button mode="ios" class="botao-excluir-anuncio" (click)="excluir(tipo, anuncio._id, favorito)" ion-button round
                text-center item-end>
                <ion-icon name="trash" item-end></ion-icon>
            </button>
        </div>
    </div>



import { Component, Input, Output, EventEmitter } from '@angular/core';
import { Anuncio } from '../../models/anuncio';
import { AppBasePage } from '../../pages/app-base-page/app-base-page';
import { AnuncioDetalhePage } from '../../pages/anuncio-detalhe/anuncio-detalhe';
import { NavController, NavParams } from 'ionic-angular';
import { AppGlobal } from '../../app/app.global';
import { AppRestService } from '../../services/app-rest.service';
import { RestNovoFavorito } from '../../services/app-rest.service';

@Component({
    selector: 'anuncio-list-item',
    templateUrl: 'anuncio-list-item.html'
})
export class AnuncioListItemComponent extends AppBasePage {

    @Input('anuncio') anuncio: Anuncio;
    @Input('tipo') tipo: any;
    @Input('favorito') favorito: any;
    @Input('cesta') cesta: any;
    @Input('operacao') operacao: any;
    @Input('apenasexcluir') apenasexcluir: any;
    @Output() onExcluir: EventEmitter<any> = new EventEmitter();
    @Output() onDetail: EventEmitter<any> = new EventEmitter();

    constructor(private rest: AppRestService, private appGlobal: AppGlobal, public navCtrl: NavController, public navParams: NavParams) {

        super();

    }

    openItem(anuncio, operacao, apenasexcluir) {
        // quando origem cesta, chama com o parametro para atualizar a cesta de acordo com o anuncio alterado
        if (this.cesta) this.navCtrl.push(AnuncioDetalhePage, { anuncio: anuncio, operacao: operacao, apenasexcluir: apenasexcluir, cesta: this.cesta });
        else this.navCtrl.push(AnuncioDetalhePage, { anuncio: anuncio, operacao: operacao, apenasexcluir: apenasexcluir});
    }

    excluir(tipo, id, favorito) {
        if (tipo == 1) {
            this.onExcluir.emit(favorito);
        } else
            this.onExcluir.emit(id);

    }

    verificarFavorito(id) {
        if (id.favorito) {
            this.excluirFavorito(id.favorito._id)
        } else {
            this.incluirFavorito(id._id)
        }
    }

    async excluirFavorito(id) {
        await this.rest.excluirAnuncioFavorito(id);
    }

    async incluirFavorito(id) {
        let restNovoFavorito = new RestNovoFavorito();
        restNovoFavorito.anuncio = id;
        await this.rest.incluirFavorito(restNovoFavorito);

    }


}

{{anuncio.publicacao.titulo}
{{anuncio.publicacao.autores}
{{anuncio.preco}货币:'R$':'code'}
({{anuncio.tipoconservaco}})
por{{{anuncio.usuario.nome}
{{anuncio.statusAnuncio}}
Anúncio:{{anuncio.tipoAnuncio.nome}{{anuncio.tipoAnuncio.valor}货币:'R$':'code'}
从“@angular/core”导入{Component,Input,Output,EventEmitter};
从“../../models/Anuncio”导入{Anuncio};
从“../../pages/app base page/app base page”导入{AppBasePage};
从“../../pages/anuncio detalhe/anuncio detalhe”导入{anuncio detalhepage}”;
从“离子角度”导入{NavController,NavParams};
从“../../app/app.global”导入{AppGlobal};
从“../../services/app rest.service”导入{AppRestService};
从“../../services/app rest.service”导入{RestNovoFavorito};
@组成部分({
选择器:“anuncio列表项”,
templateUrl:'anuncio list item.html'
})
导出类AnunciolistiteComponent扩展AppBasePage{
@输入(“anuncio”)anuncio:anuncio;
@输入(“tipo”)tipo:任何;
@输入('favorito')favorito:any;
@输入(“cesta”)cesta:任何;
@输入(“operacao”)operacao:任何;
@输入('apenasexcluir')apenasexcluir:任何;
@Output()onExcluir:EventEmitter=neweventemitter();
@Output()onDetail:EventEmitter=neweventemitter();
构造函数(私有rest:AppRestService、私有appGlobal:appGlobal、公共navCtrl:NavController、公共navParams:navParams){
超级();
}
未清项(anuncio、Operaco、Apenasecluir){
//从最初的角度来看,我们需要一个新的参数,一个新的参数,一个新的参数,一个新的参数,一个新的参数,一个新的参数,一个新的参数,一个新的参数,一个新的参数,一个新的参数,一个新的参数,一个新的参数
if(this.cesta)this.navCtrl.push(AnuncioDetalhePage,{anuncio:anuncio,operacao:operacao,apenasecluir:apenasecluir,cesta:this.cesta});
否则这个.navCtrl.push(anuncio:anuncio,operacao:operacao,apenasecluir:apenasecluir});
}
排他性(tipo、id、favorito){
如果(tipo==1){
this.onExcluir.emit(favorito);
}否则
this.onExcluir.emit(id);
}
验证信息(id){
if(id.favorito){
此。排他优先权(id.favorito.\u id)
}否则{
这个。包括Favorito(id.\U id)
}
}
异步excluirFavorito(id){
等待这个。休息。排他性的休息(id);
}
异步InclusirFavorito(id){
设restNovoFavorito=new restNovoFavorito();
restnovoivorito.anuncio=id;
等待这个。rest.incluirFavorito(restnovoivovorito);
}
}

您的代码看起来很好,请提供一个stackblitz复制该问题。您可以显示此组件的.ts文件吗?您好,我已添加了ts文件。正如我前面提到的,您的代码根据我们看到的情况运行良好:请提供一个