编写全局函数以在角度的所有组件中使用

新手上路,请多包涵

注意:它不是用于全局变量,而是用于在所有组件上执行功能的全局通用函数

我正在开发一个角度应用程序,其中我在不同模块中有大约 400 个组件,几乎所有组件都具有如下所述的相同功能

许多页面上都有一个部分显示了“如何工作”部分,用户可以关闭该部分,除非他们再次打开它,否则它将保持关闭状态,我已经用我设置的 cookie 完成了点击关闭或打开图标,但是这个函数写在一个组件中,需要在其他组件中导入

我想在某处创建一个函数,该函数在单击图标时执行此功能,并且无需在其他组件中导入任何组件即可调用。

一种方法(如我所想)可以在文件中创建一个 JavaScript 函数并将其加载到索引文件中,然后在单击关闭和打开图标时调用此函数

不确定这是否是执行此操作的最佳方法。希望有人能提出更好的解决方案。

原文由 Vikram 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 204
1 个回答

1. 创建全局功能服务,即“服务”目录下的“funcs.services.ts”

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

@Injectable({
  providedIn: 'root'
})

export class FuncsService {
  constructor() { }

  myGlobalAddFunction(a){
    return a++;
  }
  mySecondFunc(){
    // add more... and so on
  }
}

2. 在你的组件中导入函数:

 // your path may different
import { FuncsService } from './../services/funcs/funcs.service';
//...
constructor(
   private funcs: FuncsService
) {}
ngOnInit(): void {
   let x = 1;
   myResult = this.funcs.myGlobalAddFunction(x);
   // Then you are expecting 2 for return value
}

3. 希望有用… :)

原文由 JaMondo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题