2016-11-16 2 views
3

Когда я использую angular2 АОТ, я получаю сообщение об ошибке:angular2 АОТ ошибка вызовы функции не suppoted

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 к экспортируемой функции, но когда я проверить исходный код @ угловой/компилятора, я нахожу это:

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, и я не знаю, как передать его экспортированной функции в моем модуле. Буду признателен, если кто-нибудь может мне помочь!

+0

Имея ту же проблему и еще не нашел решение ... – Sebastian

ответ

8

Решение не должно использоваться COMPILER_PROVIDERS. Кроме того, вам не нужно включать JitCompiler в список поставщиков.

Вместо этого используйте JitCompilerFactory с "@ angular/compiler". Это не инъекционное, так просто создать новый экземпляр этого себя так:

private compiler: Compiler = new JitCompilerFactory([{useDebug: false, useJit: true}]).createCompiler(); 

Остальное работает, как и раньше, например, следующие отличный ответ Радит Колер here.

+0

Большое спасибо Себастьяну, это действительно помогло мне! – maxbellec

+2

У кого-нибудь есть работающий JitCompiletFactory с образцом AOT? Когда я его использую, я всегда получаю метаданные No NgModule, найденные для DynamicHtmlModule. – user2771738

+2

Просто хотел добавить, что показанный Компилятор поступает из @ углового/ядра, а не @ углового/компилятора, подобного предыдущему JitCompiler и фабрике. Потратил меня на то, чтобы найти его. – Tarmo

Смежные вопросы