angular.js - angular2 rc5 Tiada kilang komponen ditemui untuk someComponent
黄舟
黄舟 2017-05-15 17:05:48
0
1
690

Apabila saya mengemas kini angular2 daripada rc4 kepada rc5, komponen yang dicipta secara dinamik sebelum ini tidak berfungsi dengan betul Sebabnya mungkin perkhidmatan telah digunakan dalam komponen yang dicipta secara dinamik, dan perkhidmatan ini tidak dapat diperoleh, tetapi tiada penyelesaian khusus. dijumpai. Bolehkah sesiapa membantu, berikut ialah kod
Saya mengemas kini angular2 kepada rc5, perkhidmatan tidak dapat berkongsi apabila dinamik mencipta SharedComponent, di bawah adalah ralat:

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 (<anonymous>:3:14)]
caller
:
[Exception: TypeError: 'caller' and 'arguments' are restricted function properties and cannot be accessed in this context. at Function.remoteFunction (<anonymous>:3:14)]
length
:
1
name
:
"SharedComponent"

di bawah ialah kod saya
----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);
  }
}
黄舟
黄舟

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

membalas semua(1)
曾经蜡笔没有小新

A.module.ts

@NgModule({
  imports: [
    sharedModule.forRoot()
  ],
  declarations: [
    AComponent
  ],
  entryComponents: [
    SharedComponent
  ]
  providers:[FormService]
})
export class AModule { }
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan