angular 定义中间商(也就是一个全局变量)实现内外部通信

1.index.html中定义全局变量

<script>
    var middleArea=null;//声明一个全局变量,用于内外部通讯的中间商
</script>

2.typing.d.ts中声明变量

declare var middleArea:any;

3.app.component.ts中给middleArea赋值为一个服务

constructor(
    private service:CommonService,
  ) {
     }
ngOnInit() {
     
    middleArea = this.service;//将中间商-赋值为commonService服务
}

4. commonService中设置send、get方法

subject = new BehaviorSubject<any>(null);
sendMessage(file:any){
     
  this.subject.next({
     file:file});
}
getMessage(){
     
  return this.subject.asObservable();
}

5.外部js文件发送send方法

var data = xxx;
middleArea.sendMessage(data); 

6.内部ts文件监听get方法

constructor(private commonFService:CommonFactoryService) {
       }
ngOnInit(){
     
	this.commonService.getPatrolUrlPaste().subscribe(item => {
     
	      if (item) {
     
	       console.log(item)//item就是send方法中的data
	      }
	})
}

你可能感兴趣的:(前端,NG4)