2017-06-28 5 views
0

私は他のページに移動し、このページに戻っcomポートするとき、私はいままで、方法角度4のマップを使用してグローバルに値を設定する方法は?

 changeView() { 
this.toggle = !this.toggle; 
this.uiService.setData("category",this.toggle); 
console.log(this.uiService.getData("category")); 
} 

ngOnInit(): void { 
console.log("on",this.uiService.getData("category")); 
this.getCategories(); 
} 

を使用してキー値をSETINGが、午前私のコントローラで

import { Injectable } from '@angular/core'; 
import { Client } from '../../inventory/setting/client'; 

@Injectable() 

export class UIService { 
public client?: Client; 
public isFullWidth?: boolean = false; 
    public data?: boolean; 
    constructor() { 
     } 
    myMap = new Map(); 



public setData(key, data) { 
    console.log("here"); 
    this.myMap.set(key, data); 
          } 

    public getData(key) { 
    return this.myMap.get(key); 
    } 

    } 

のようなサービスを使用していますsetDataメソッドを使用して設定が保存されません。

oninitメソッドのconsole.logは常にundefinedを返します。

私はキー値のペアをグローバルに保存するにはどうしたらいいですか?また、ページを変更する場合はアクセス可能にする必要があります。

答えて

0

あなたはグローバルなサービス

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

    interface Global{ 
     [id: string]: any; 
    } 

@Injectable() 
export class GlobalDataService { 
    data: Global = {}; 
} 

を作成し、コンポーネント

import { Component, OnInit } from '@angular/core'; 
import { LoginService } from '../login.service'; 
import { NgForm } from '@angular/forms'; 
import { GlobalDataService } from '../services/global-data.service'; 
import { Router } from '@angular/router'; 

@Component({ 
    selector: 'app-login', 
    templateUrl: './login.component.html', 
    styleUrls: ['./login.component.css'], 
    providers: [LoginService,GlobalDataService] 
}) 
export class LoginComponent implements OnInit { 


    fValue: NgForm; 

    constructor(
    private loginService: LoginService, 
    private global: GlobalDataService, 
    private router: Router) { 

    } 

    ngOnInit() { 

    } 


    click(form: NgForm){ 
      this.loginService.postData(form.value) 
       .subscribe(
        (data) => { 
         this.global.user=data.body.user; 
         console.log(this.global.user); 
         }); 

    } 

} 
でそれを使用する必要があります。
関連する問題