Как я могу использовать / создать динамический шаблон для компиляции динамического компонента с Angular 2.0?

я бы хотелдинамично Создайтешаблон, Это должно быть использовано для созданияComponentType ввремя выполнения и место(даже заменить) это где-то внутри хостинг-компонента.

До RC4 я пользовалсяComponentResolver, но с RC5 я получаю сообщение:

ComponentResolver не рекомендуется для динамической компиляции. использованиеComponentFactoryResolver вместе с@NgModule/@Component.entryComponents или вместо ANALYZE_FOR_ENTRY_COMPONENTS провайдера.Только для времени компиляцииВы также можете использоватьCompiler.compileComponentSync/Async.

Я нашел этот (официальный angular2) документ

Angular 2 Синхронное Динамическое Создание Компонентов

И понимаю, что я могу использовать либо

Вид динамическогоngIf сComponentFactoryResolver, Если я передам известные компоненты на хостинг внутри@Component({entryComponents: [comp1, comp2], ...}) - Я могу использовать.resolveComponentFactory(componentToRender);Реальная компиляция во время выполнения, сCompiler...

Но вопрос в том, как это использоватьCompiler? Примечание выше говорит, что я должен позвонить:Compiler.compileComponentSync/Async - так как?

Например. Я хочу создать(на основании некоторых условий конфигурации) этот вид шаблона для одного вида настроек

<form>
   <string-editor
     [propertyName]="'code'"
     [entity]="entity"
   ></string-editor>
   <string-editor
     [propertyName]="'description'"
     [entity]="entity"
   ></string-editor>
   ...

а в другом случае этот(string-editor заменяется наtext-editor)

<form>
   <text-editor
     [propertyName]="'code'"
     [entity]="entity"
   ></text-editor>
   ...

И так далее(другой номер / дата / ссылкаeditors по типам свойств, пропущены некоторые свойства для некоторых пользователей ...), То есть это пример, реальная конфигурация может генерировать гораздо больше разных и сложных шаблонов.

шаблон меняетсяпоэтому я не могу использоватьComponentFactoryResolver и передать существующие ... Мне нужно решение сCompiler

AOT и JitCompiler(бывший RuntimeCompiler)

Хотели бы вы использовать эту функцию с AOT (заблаговременная компиляция)? Вы получаете:

Ошибка: обнаружена ошибка при статическом разрешении значений символов. Вызовы функций не поддерживаются. Попробуйте заменить функцию или лямбду ссылкой на экспортированную функцию (позиция 65:17 в исходном файле .ts), разрешив символ COMPILER_PROVIDERS в ... / node_modules/@angular/compiler/src/compiler.d.ts,

Пожалуйста, оставьте свой комментарий, проголосуйте здесь:

Может / будет / будет ли код с использованием COMPILER_PROVIDERS поддерживаться AOT?

Ответы на вопрос(13)

Ваш ответ на вопрос