2
respostas

Alterar Variável do component pelo service

Gostaria de saber como faço para alterar a variável insira seu código aqui que foi passada de um serviço para o component, mais não é atualizada.

//Service
import { Injectable } from '@angular/core';

@Injectable()
export class StepsService {

    teste: string = 'texto exemplo';
    step0: boolean;
    step1: boolean;

      constructor() { }

  proxStep1(): void {
    this.step0 = false;
    alert(this.step0);
    console.log("status step 0 - " + this.step0);
  }

  msgAlerta(): void {
      alert('Livro Angular 2 - Google - ' + this.teste);
  }
}
//Component
import { Component, OnInit } from '@angular/core';

import { StepsService } from '../steps.service';

@Component({
  selector: 'app-step-0',
  templateUrl: './step-0.component.html',
  styleUrls: ['./step-0.component.css']
})
export class Step0Component implements OnInit {

  step0: boolean = true;

  constructor(public service: StepsService){
  }

  ngOnInit() {
  }

  avancarStep1(): void {
    this.service.proxStep1();
  }

  enviarMsg(): void {
    this.service.msgAlerta();
  }
}
//Template
<section class="step step0" *ngIf="step0 == true">
    <h2>Step-0 {{step0}}</h2>

    <button (click)="avancarStep1()">Avançar</button>
    <button (click)="enviarMsg()">Enviar Alerta</button>
</section>
2 respostas

Não entendi qual é a variável que você está querendo alterar?

Por favor, você pode me explicar de uma outra forma para ver seu eu consigo entender e te ajuda?

[]'s Marco Bruno

Estou querendo altera a variável step0: boolean = true;

O fluxo está da seguinte maneira: criei um serviço, que ao clicar no método proxStep1() do servico, altera a variavel step0: boolean = true - para - this.step0 = false;

Ele exibir no component pelo console.log e alert que altero, mais a variavel step0 continua como true.