在 Angular 中将实用函数放在哪里

ber*_*nlt 6 angular

这只是一个使用 Angular 的示例,假设我需要在组件中使用一个函数,在这种情况下该getDay()函数将由事件调用。

getDay()  {
  switch (new Date().getDay()) {
    case 0:
      day = "Sunday";
      break;
    case 1:
      day = "Monday";
      break;
    case 2:
       day = "Tuesday";
       break;
    case 3:
      day = "Wednesday";
      break;
    case 4:
      day = "Thursday";
      break;
    case 5:
      day = "Friday";
      break;
    case 6:
      day = "Saturday";
  }
}
Run Code Online (Sandbox Code Playgroud)

由于我使用的是 Typescript,我是否应该在组件目录及其内部创建一个共享文件夹:

创建一个组件,例如:formatDate.component.ts使用export class FormateDateComponent并在其中添加我的函数并导入到我想要的位置?

最好的做法是什么。

Sta*_*kov 9

当我有类似的问题时,我会看看 Angular、Material、rxjs 或任何其他广泛使用的框架的人是如何做的。对于您的情况,它将是https://github.com/angular/angular/blob/master/packages/core/src/sanitization/url_sanitizer.ts - 只需为功能创建文件并使用描述性名称导出函数。按功能组织代码就可以了。但不要创建大量的所有内容(例如utils.ts),尝试按功能进行组织。


aak*_*arg 7

有两种方法:-

  1. 在类中创建静态方法:-

    export Class DateHelper {
       static getDay()  {
        switch (new Date().getDay()) {
             case 0:
             day = "Sunday";
             break;
             case 1:
             day = "Monday";
             break;
             case 2:
             day = "Tuesday";
             break;
             case 3:
             day = "Wednesday";
             break;
             case 4:
             day = "Thursday";
             break;
             case 5:
             day = "Friday";
             break;
             case 6:
             day = "Saturday";
           }
        }
      }
Run Code Online (Sandbox Code Playgroud)

可以像 DateHelper.getDay() 一样直接使用它。

  1. 创建一个类并在组件 Foreg 中继承它的方法:-

    export class AppComponent extends DateHelper {
       constructor(){
         super();
       }
       this.getDay();
    } 
Run Code Online (Sandbox Code Playgroud)

对于像你这样的普通方法,我会采用第一种方法。

  • 静态类确实不需要。您可以在某些“date-utlities.ts”文件中“export function getDay() { ... }” (2认同)