标签: angular-factory

Angular:收集的元数据包含运行时会报错:Lambda not supported

在我的 Angular 应用程序中,我试图在我的模块中使用工厂提供程序

export function getMyFactory(): () => Window {
  return () => window;
}

@NgModule({
  providers: [
    { provide: WindowRef, useFactory: getMyFactory() },
  ],
})
export class MyModule {}
Run Code Online (Sandbox Code Playgroud)

但这失败了:

在为导出的符号“MyModule”生成的元数据中遇到错误:

收集的元数据包含运行时会报错:Lambda not supported

typescript angular-providers angular-factory angular angular-dependency-injection

8
推荐指数
3
解决办法
8359
查看次数

Angular 中的工厂是什么

我正在阅读Max NgWizard K的一篇关于 Angular 如何更新 DOM 的文章。我遇到了以下情况:

对于应用程序中使用的每个组件,Angular 编译器都会生成一个工厂。当 Angular 从工厂创建组件时,Angular 使用该工厂来实例化视图定义,而视图定义又用于创建组件视图。在引擎盖下,Angular 将应用程序表示为视图树。

在Max NgWizard KI 的另一篇文章中找到了工厂的定义:

工厂描述组件视图的结构,并在实例化组件时使用。

我不太确定这是什么意思。

问题:

  1. Angular(2+) 中的工厂究竟是什么?
  2. 是否存在开发人员因了解其工作原理而受益的场景?

javascript typescript angular-factory angular

6
推荐指数
1
解决办法
4605
查看次数

Angular - useFactory - 不支持错误函数调用。考虑使用对导出函数的引用替换函数或 lambda

我使用 Angular AOT 编译器版本 4.1.3

我有一个组件库,它导出一个工厂方法,然后用于提供服务:

export function libServiceFactory(itemId: string) {
  return (http: Http): LibService => {
    return new LibService(http, itemId);
  };
};
Run Code Online (Sandbox Code Playgroud)

编译库ngc成功。

然后导入编译好的库,我LibServiceFactory在网站的 AppModule 中使用:

providers: [
  { provide: SERVICE_TOKEN, useFactory: libServiceFactory('foo'), deps: [Http] }
],
Run Code Online (Sandbox Code Playgroud)

编译网站ng build我收到以下错误:

ERROR in Error encountered resolving symbol values statically. Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function (position 5:10 in the …
Run Code Online (Sandbox Code Playgroud)

angular-factory angular angular-compiler angular-aot

5
推荐指数
1
解决办法
1752
查看次数