zoukankan      html  css  js  c++  java
  • angular设置全局变量,修改监听变量

    创建service.module.ts

    import { NgModule, ModuleWithProviders } from '@angular/core';
    import { SomeSharedService } from './global.service';
    export {
      SomeSharedService
    }
    
    @NgModule()
    export class ServicesModule { 
      static forRoot():ModuleWithProviders{
        return {
          ngModule:ServicesModule,
          providers:[SomeSharedService]
        }
      }
    }

    新建global.service.ts

    import { Injectable } from '@angular/core'
    import { BehaviorSubject } from 'rxjs';
    
    @Injectable()
    export class SomeSharedService {
      public globalVar:BehaviorSubject<any[]> = new BehaviorSubject([]);
      public pageLimit = 10;
    }

    在组件1中引入服务并获取值

    ...
    import { SomeSharedService } from 'src/app/services/global.service';
    .....
      constructor(
        private someSharedService: SomeSharedService
      ) { 
      }
    
      ngOnInit() {
        this.someSharedService.globalVar.subscribe(d=>{
          this.clumb = d;
        })
      }
    ....
    }

    在组件2中引入服务并设置值

    import { SomeSharedService } from 'src/app/services/global.service';
    ....
    ...
      constructor(
        private someSharedService$:SomeSharedService
      ) {}
    
     
      getProjectName(id:Number){
        this.someSharedService$.globalVar.next(['我的项目',{id:id,name:res.data.project_name}]
      }
    ....
    }

    这里设置了新的值,在组件1订阅 到改变后的值。

  • 相关阅读:
    LeetCode 225. 用队列实现栈 做题笔记
    杨辉三角
    字母图形
    01字符串
    圆的面积
    饮料和啤酒
    进制转换
    从今天起 复习算法
    乘法群
    Paillier同态加密的介绍以及c++实现
  • 原文地址:https://www.cnblogs.com/mary-123/p/11206694.html
Copyright © 2011-2022 走看看