【问题标题】:Can a defined provider that is a fat arrow method call another provided fat arrow method?作为胖箭头方法的已定义提供程序可以调用另一个提供的胖箭头方法吗?
【发布时间】:2021-07-25 08:11:08
【问题描述】:

假设我在@NgModuleproviders 数组中定义了 2 个粗箭头方法。它们被称为capitalizecapitalizeCallingMethod

@NgModule({
providers: [
    { provide: 'capitalize', 
       useValue: (stringToCapitalize : string) => { 
       if(stringToCapitalize && stringToCapitalize.length > 1)
         return stringToCapitalize.charAt(0).toUpperCase() + stringToCapitalize.slice(1).toLowerCase();
       else 
         return stringToCapitalize;
       } 
    },
    { provide: 'capitalizeCallingMethod', 
       useValue: aString => {
           return capitalize(aString); //How do i call capitalize?
       } 
    }
  ]
});

是否可以从capitalizeCallingMethod 中调用capitalize,如果可以,我该如何实现?我已经在 stackoverflow 上查看了有关提供程序调用提供程序的类似问题,但它们都是关于使用其他提供程序类的提供程序类。

【问题讨论】:

  • 如果你可以格式化代码 sn-p,它很难阅读
  • @Drenai 这样更好吗?

标签: angular provider ng-modules


【解决方案1】:

对于capitalizeCallingMethod 提供程序,将useValue 替换为useFactory,并将capitalize 令牌作为依赖项传递

格式示例如下所示

{ 
    provide: HeroService,
    useFactory: heroServiceFactory,
    deps: [Logger, UserService]
  };

【讨论】:

  • 这需要创建一个额外的类。问题是是否可以从另一个胖箭头函数调用一个胖箭头函数。
  • 这只是一个示例,您可以使用相同的方法而无需创建类
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 2017-10-31
  • 1970-01-01
  • 1970-01-01
  • 2021-06-23
相关资源
最近更新 更多