angular.js - angular2 rc5 No component factory found for someComponent
黄舟
黄舟 2017-05-15 17:05:48
0
1
647

当我将angular2 从rc4更新到rc5,之前的动态创建组件无法正常工作,原因可能是因为动态创建的组件中用到一个service,而这个service无法获得,但没有找到具体的解决办法,谁能帮忙看看,下面是代码
I update angular2 to rc5,service can't share when dynamic create SharedComponent,below is error:

NoComponentFactoryError {message: "No component factory found for SharedComponent", stack: "Error: No component factory found for FormComponen…tron/output/electron/build/polyfills.js:16347:22)"} component : SharedComponent(shareService) arguments : [Exception: TypeError: 'caller' and 'arguments' are restricted function properties and cannot be accessed in this context. at Function.remoteFunction (:3:14)] caller : [Exception: TypeError: 'caller' and 'arguments' are restricted function properties and cannot be accessed in this context. at Function.remoteFunction (:3:14)] length : 1 name : "SharedComponent"

below is my code
----SharedComponent---

@Component({ template: require('./share.component.html'), styles: [require('./share.component.css')] }) export class SharedComponent implements OnInit { constructor(@Optional() private shareService:ShareService) { ...... } }

---shared.module.ts-------

@NgModule({ imports: [CommonModule, FormsModule], declarations: [SharedComponent], exports: [CommonModule, FormsModule, SharedComponent] }) export class SharedModule { static forRoot(): ModuleWithProviders { return { ngModule: SharedModule }; }

---A.module.ts---------

@NgModule({ imports: [ sharedModule.forRoot() ], declarations: [ AComponent ], providers:[FormService] }) export class AModule { }

-----A.component.ts------

@Component({ template: require('./a.component.html'), styles: [require('./a.component.css')], providers: [ShareService] }) export class UserComponent implements OnInit { @ViewChild('body', { read: ViewContainerRef }) bodyContainerRef: ViewContainerRef; constructor(private compiler: ComponentFactoryResolver,private shareService: ShareService) { } ngOnInit() { //Dynamic create SharedComponent let componentFactory = this.compiler.resolveComponentFactory(SharedComponent); this.bodyContainerRef.createComponent(componentFactory); } }
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信 (1)
曾经蜡笔没有小新

A.module.ts

リーリー
いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!