Html 正在执行两个不同的操作
在这段代码中,我有一个方法openItem(anuncio,operacao)“当我单击将执行该操作的对象时运行。在这种情况下,我不明白为什么在运行(单击)=”checkFavorite(广告)时他也执行该操作。单击verifyFavorite操作应该只运行它,而不运行openItem。有人能帮助我吗?谢谢Html 正在执行两个不同的操作,html,node.js,angular,Html,Node.js,Angular,在这段代码中,我有一个方法openItem(anuncio,operacao)“当我单击将执行该操作的对象时运行。在这种情况下,我不明白为什么在运行(单击)=”checkFavorite(广告)时他也执行该操作。单击verifyFavorite操作应该只运行它,而不运行openItem。有人能帮助我吗?谢谢 <div class="ali-container"> <div class="ali-linha"> <div
<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文件。正如我前面提到的,您的代码根据我们看到的情况运行良好:请提供一个