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

Carregar arquivo .json para mensagens

Olá Pessoal,

Estou tentando carregar um arquivo .json, para que eu utilize para mostrar ao usuário as mensagens de validação dos campos. Fiz um filtro da seguinte forma: No HTML:

<input

<mat-form-field>
    <input matInput formControlName="login" maxlength="10"  
          placeholder="Login">
       <mat-error *ngIf="formLogin.controls.login.invalid">
              {{'MSG_CAMPO_OBRIGATORIO' | filtroMensagens}}
       </mat-error>
</mat-form-field>

Meu filtro, que chama um serviço chamado MensagensService:

import { Pipe, PipeTransform } from '@angular/core';
import { MensagensService } from './mensagens.service';

@Pipe({
  name: 'filtroMensagens'
})
export class FiltroMensagensPipe implements PipeTransform {
  private mensagensService:MensagensService;
  constructor(mensagensService:MensagensService){
    this.mensagensService = mensagensService;
  }
  transform(value: string): string {
    this.mensagensService.obtemMensagem();
    return 'A mensagem obtida do arquivo .json';
  }

}

E, no serviço MensagensService, da seguinte forma:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class MensagensService {

  private data:JSON;
  constructor(private httpClient:HttpClient) {

  }

  obtemMensagem = (): String => {
    console.log("In getConfiguration of ConfigurationService");
    this.httpClient.get('../app/mensagens/mensagens.json').subscribe(data => this.data);
    console.log(this.data);
    return 'Teste';
  }

}

Só que quando inicio a aplicação e vou pra tela de login, no console, é apresentado o seguinte erro: GET http://localhost:4200/app/mensagens/mensagens.json 404 (Not Found)

Já o coloquei na raiz e em outras pastas, mas não consigo carregar este arquivo.

2 respostas
solução!

Ivan Dias, tudo bom?

Uma coisa que eu chuto que poderia dar certo, seria acessar o .angular-cli.json e embaixo do favicon adicionar o arquivo json que você quer que seja mapeado para o servidor de desenvolvimento:

"assets": [ "assets", "favicon.ico", "meujson.json" ],

Olá Mário, tudo bem?

Coloquei dentro da pasta assets do meu projeto e funcionou, sem mapear no angular-cli.json.

Obrigado pela ajuda.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software