Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.58 KB | None | 0 0
  1. import {Component, ComponentFactory, ComponentFactoryResolver, ViewChild, ViewContainerRef} from '@angular/core';
  2. import {DashboardComponent} from './dashboard.component';
  3.  
  4. @Component({
  5. selector: 'app-admin-base',
  6. templateUrl: './base.component.html',
  7. styleUrls: [
  8. './base.component.css']
  9. })
  10. export class BaseComponent {
  11. menuitems = [
  12. {
  13. title: 'Dashboard', componentName: 'DashboardComponent'
  14. },
  15. {
  16. title: 'Front Page', componentName: 'FrontPageComponent'
  17. },
  18. {
  19. title: 'Courses', componentName: 'CourseComponent'
  20. },
  21. {
  22. title: 'Users', componentName: 'UserComponent'
  23. },
  24. {
  25. title: 'Server', componentName: 'ServerComponent'
  26. }
  27. ];
  28.  
  29. @ViewChild('subContainer', {read: ViewContainerRef}) subContainer: ViewContainerRef;
  30.  
  31. constructor(
  32. private compFactoryResolver: ComponentFactoryResolver
  33. ) {
  34. }
  35. replaceComponent(componentName) {
  36. console.log(componentName);
  37. let compFactory: ComponentFactory<any>;
  38.  
  39. compFactory = this.compFactoryResolver.resolveComponentFactory(componentName);
  40. this.subContainer.clear();
  41. this.subContainer.createComponent(compFactory);
  42. }
  43.  
  44. }
  45.  
  46. <div class="container">
  47. <div class="row">
  48. <div class="col-3 horizontal-menu">
  49. <ul class="navbar-nav" *ngFor="let menuitem of menuitems; let i = index">
  50. <li class="nav-item">
  51. <button (click)="replaceComponent(menuitem['componentName'])">{{menuitem['title']}}</button>
  52. </li>
  53. </ul>
  54. </div>
  55. <div class="col-9">
  56. <ng-template #subContainer></ng-template>
  57. </div>
  58. </div>
  59. </div>
  60.  
  61. import { Component } from '@angular/core';
  62.  
  63. @Component({
  64. selector: 'app-admin-dashboard',
  65. templateUrl: './dashboard.component.html',
  66. styleUrls: [
  67. './dashboard.component.css']
  68. })
  69. export class DashboardComponent {
  70. }
  71.  
  72. import { Component } from '@angular/core';
  73.  
  74. @Component({
  75. selector: 'app-front-page-config',
  76. templateUrl: './frontpage.component.html',
  77. styleUrls: [
  78. './frontpage.component.css']
  79. })
  80. export class FrontPageComponent {
  81.  
  82. }
  83.  
  84. import { BrowserModule } from '@angular/platform-browser';
  85. import { NgModule } from '@angular/core';
  86. import { FormsModule } from '@angular/forms';
  87. import { HttpModule } from '@angular/http';
  88.  
  89. import { AppComponent } from './app.component';
  90. import {FooterComponent} from './footer.component';
  91. import {HeaderComponent} from './header.component';
  92. import {FrontBodyComponent} from './frontbody.component';
  93. import {SliderComponent} from './slider.component';
  94. import {CourseComponent} from './course.component';
  95. import {RouterModule, Routes} from '@angular/router';
  96. import {BaseComponent} from './Admin/base.component';
  97. import {FrontPageComponent} from './Admin/frontpage.component';
  98. import {DashboardComponent} from './Admin/dashboard.component';
  99.  
  100. const appRoutes: Routes = [
  101. { path: '',
  102. redirectTo: '/admin',
  103. pathMatch: 'full'
  104. },
  105. { path: 'crisis-center',
  106. component: CourseComponent
  107. },
  108. ];
  109.  
  110. @NgModule({
  111. declarations: [
  112. AppComponent,
  113. FooterComponent,
  114. HeaderComponent,
  115. FrontBodyComponent,
  116. SliderComponent,
  117. CourseComponent,
  118. BaseComponent,
  119. FrontPageComponent,
  120. DashboardComponent
  121. ],
  122. imports: [
  123. BrowserModule,
  124. RouterModule.forRoot([
  125. {
  126. path: '', component: FrontBodyComponent
  127. },
  128. {
  129. path: 'admin', component: BaseComponent
  130. },
  131. {
  132. path: 'frontpage', component: FrontPageComponent
  133. }
  134. ]),
  135. FormsModule,
  136. HttpModule
  137. ],
  138. entryComponents: [DashboardComponent, FrontPageComponent],
  139. providers: [],
  140. bootstrap: [AppComponent]
  141. })
  142. export class AppModule { }
  143.  
  144. ERROR Error: No component factory found for DashboardComponent. Did you add it to @NgModule.entryComponents?
  145. at noComponentFactoryError (vendor.bundle.js:3948) [angular]
  146. at _NullComponentFactoryResolver.resolveComponentFactory (vendor.bundle.js:3966) [angular]
  147. at CodegenComponentFactoryResolver.resolveComponentFactory (vendor.bundle.js:4008) [angular]
  148. at BaseComponent.webpackJsonp.129.BaseComponent.replaceComponent (base.component.ts:39) [angular]
  149. at Object.eval [as handleEvent] (BaseComponent.html:6) [angular]
  150. at handleEvent (vendor.bundle.js:12451) [angular]
  151. at callWithDebugContext (vendor.bundle.js:13659) [angular]
  152. at Object.debugHandleEvent [as handleEvent] (vendor.bundle.js:13247) [angular]
  153. at dispatchEvent (vendor.bundle.js:9426) [angular]
  154. at vendor.bundle.js:10016:38 [angular]
  155. at HTMLButtonElement.<anonymous> (vendor.bundle.js:19064) [angular]
  156. at Object.onInvokeTask (vendor.bundle.js:4762) [angular]
  157. at ZoneDelegate.invokeTask (polyfills.bundle.js:3072) [angular]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement