angular2 AoT错误不支持函数调用
angular2 AoT error Function calls are not supported
当我使用 angular2 AoT 时,出现错误:
Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function (position 54:17 in the original .ts file), resolving symbol COMPILER_PROVIDERS in
在我的指令模块中,我有这样的代码:
import { COMPILER_PROVIDERS } from '@angular/compiler';
@NgModule({
/*imports ...*/
providers: [
COMPILER_PROVIDERS,
]
})
我知道我应该将 COMPILER_PROVIDERS 更改为导出函数,但是当我检查@angular/compiler 的源代码时,我发现了这个:
export declare const COMPILER_PROVIDERS: Array<any | Type<any> | {
[k: string]: any;
} | any[]>;
export declare class RuntimeCompilerFactory implements CompilerFactory {
private _defaultOptions;
constructor(defaultOptions: CompilerOptions[]);
createCompiler(options?: CompilerOptions[]): Compiler;
}
我不知道 COMPILER_PROVIDERS 是如何工作的,我也不知道如何将它传输到我的模块中的导出函数。
解决方案是不再使用 COMPILER_PROVIDERS
。此外,您无需在提供商列表中包含 JitCompiler
。
而是使用“@angular/compiler”中的 JitCompilerFactory
。它是不可注入的,所以只需像这样自己创建一个新实例:
private compiler: Compiler = new JitCompilerFactory([{useDebug: false, useJit: true}]).createCompiler();
其余部分与以前一样,例如遵循 Radim Kohler 的出色回答 。
当我使用 angular2 AoT 时,出现错误:
Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function (position 54:17 in the original .ts file), resolving symbol COMPILER_PROVIDERS in
在我的指令模块中,我有这样的代码:
import { COMPILER_PROVIDERS } from '@angular/compiler';
@NgModule({
/*imports ...*/
providers: [
COMPILER_PROVIDERS,
]
})
我知道我应该将 COMPILER_PROVIDERS 更改为导出函数,但是当我检查@angular/compiler 的源代码时,我发现了这个:
export declare const COMPILER_PROVIDERS: Array<any | Type<any> | {
[k: string]: any;
} | any[]>;
export declare class RuntimeCompilerFactory implements CompilerFactory {
private _defaultOptions;
constructor(defaultOptions: CompilerOptions[]);
createCompiler(options?: CompilerOptions[]): Compiler;
}
我不知道 COMPILER_PROVIDERS 是如何工作的,我也不知道如何将它传输到我的模块中的导出函数。
解决方案是不再使用 COMPILER_PROVIDERS
。此外,您无需在提供商列表中包含 JitCompiler
。
而是使用“@angular/compiler”中的 JitCompilerFactory
。它是不可注入的,所以只需像这样自己创建一个新实例:
private compiler: Compiler = new JitCompilerFactory([{useDebug: false, useJit: true}]).createCompiler();
其余部分与以前一样,例如遵循 Radim Kohler 的出色回答