nezhar
3/7/2018 - 5:26 PM

Angular Shared Event Service

import {Component, OnInit} from '@angular/core';
import {NavigationStatusService} from "app/services";

@Component({
    selector: 'app-navigation-toggler',
    templateUrl: './navigation-toggler.component.html',
    styleUrls: ['./navigation-toggler.component.scss']
})
export class NavigationTogglerComponent implements OnInit {
    navigationOpen: boolean;

    constructor(private navigationStatusService: NavigationStatusService) {
    }

    ngOnInit() {
        this.navigationStatusService.navigationOpen.subscribe(
            navigationOpen => this.navigationOpen = navigationOpen
        );
    }

    toggleNavigation() {
        this.navigationStatusService.changeNavigationSatus(!this.navigationOpen);
    }
}
import {Injectable} from '@angular/core';
import {BehaviorSubject} from "rxjs/BehaviorSubject";


@Injectable()
export class NavigationStatusService {

    private statusSource= new BehaviorSubject<boolean>(false);
    navigationOpen = this.statusSource.asObservable();

    constructor() {
    }

    changeNavigationSatus(navigationStatus: boolean) {
        this.statusSource.next(navigationStatus);
    }
}