ANGULAR7 - BOTÃO DE PESQUISA NÃO FUNCIONA

 Tópico anterior Próximo tópico Novo tópico

ANGULAR7 - BOTÃO DE PESQUISA NÃO FUNCIONA

ASP.NET

 Compartilhe  Compartilhe  Compartilhe
#492548 - 06/02/2020 13:19:50

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Boa tarde, pessoal.
Estou apanhando um pouco com o Angular. Estou fazendo testes com um catálogo de CDs, aproveitando minha Web API que eu tenho criada.
O que eu quero: Numa página preciso listar todos os artistas cadastrados e uma caixa texto para procurar um determinado artista (pelo nome);
Então preciso de uma "função" que determine se foi digitado um texto, vai procurar os artistas de acordo com o nome digitado, senão, vai mostrar todos. Simples.
O que eu tenho feito até agora:
Tenho a caixa de texto, e um botão Buscar Registros e outro Mostrar Todos;
        <th><input formControlName="artistaNome" class="form-control" name="search"/></th>
        <th>  </th>
        <th><input type="submit" (click)="loadAllArtistas(artistaNome.value)" class="btn" style="font-size: 14px; background-color:lightsteelblue;" value="Buscar registro(s)"></th>
        <th>  </th>
        <th><input type="submit" class="btn" style="font-size: 14px; background-color: lightsteelblue;" value="Mostrar Todos" (click)="loadAllArtistas()"></th>

Onde está em azul, quero saber se estou "chamando" corretamente o input.

Aí eu tenho no artista.component.ts:
loadAllArtistas(artistaNome: string) {  
    this.allArtistas = this.artistaService.getAllArtistas(artistaNome);  
  }  


E no artista.service.ts eu tenho:
export class ArtistaService {
  url = 'https://localhost:XXXXX/api/artistas';  

  constructor(private http: HttpClient) { }

  getAllArtistas(artistaNome: string): Observable<Artista[]> {
    if ( artistaNome == "")
    {
      return this.http.get<Artista[]>(this.url);    
    }
    else{
      const apiurl = `${this.url}/?nome=${artistaNome}`; // aqui não sei se está correto também
      return this.http.get<Artista[]>(apiurl);  
    }
  }
}


Quando eu clico no Mostrar Todos, funciona, lista todos os artistas cadastrados.
O que não está funcionando é a busca pelo nome do artista, não lista nada.
Analisando estes trechos de código dá pra dizer onde estou errando?

____________________________________________________
Você sabe que alguém te ama não pelo que ele fala, mas pelo o que faz.
O amor não sobrevive de teorias.




#492549 - 06/02/2020 13:36:28

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Vai ser mais simples usar os eventos nativos do form, no caso o onSubmit:

No form:
<form (submit)="onSubmit(artista.value)">
   <input #artista placeholder="Nome do artista">
</form>

Na controller:
onSubmit(artista: string) {
  console.log(artista)
}


_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário