簡體   English   中英

Angular 2將服務注入動態組件

[英]Angular 2 inject service into dynamic component

我正在創建一個多步驟用戶注冊,在每個步驟之后,服務器返回下一個表單的HTML字符串以完成。 在每一步,我將HTML設置為我使用CompileService動態創建的表單組件的模板。 這工作正常,表單看起來不錯,但我無法向動態創建的表單添加任何服務,我不斷遇到類似的問題

"Cannot resolve all parameters"

這是我的CompileService

import { Component, ComponentMetadata, ComponentResolver, Injectable, ReflectiveInjector, ViewContainerRef } from '@angular/core';

@Injectable()
export class CompileService {
constructor(private resolver: ComponentResolver) {}

createComponent(metadata: ComponentMetadata, vcRef: ViewContainerRef) {
        let cmpClass = class DynamicComponent {};

        let decoratedCmp = Component(metadata)(cmpClass);
        this.resolver.resolveComponent(decoratedCmp).then(factory => {
        let injector = ReflectiveInjector.fromResolvedProviders(providers, vcRef.parentInjector);
            vcRef.createComponent(factory, 0, injector, []);
        });
    }
}

我希望編輯此服務,以便它不僅可以即時創建組件,還可以將服務注入到該組件中。 我怎么能這樣做?

查看這行代碼,請解釋提供者參數是什么...

let injector = ReflectiveInjector.fromResolvedProviders(providers, vcRef.parentInjector);

我不知道它是什么或來自哪里。 在這種情況下,我會告訴你......

“無法解析所有參數”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM