未调用 Angular2 组件构造函数

Angular2 component constructor didn't called

我的演示应用程序组件的构造函数未在应用程序启动时调用:

演示组件:

@Component({
  selector: 'app-demo-page',
  templateUrl: './index.component.html',
  styleUrls: ['./index.component.css']
})
export class DemoComponent implements OnInit {

  constructor() {
    console.log('constructor run');
  }

  ngOnInit() {
    console.log('oninit run');
  }
}

路由模块:

const routes: Routes = [
  {
    path: 'demo',
    component: DemoComponent ,
    resolve: {
      data: DemoResolverService
    }
  },
  {
    path: '',
    component: AppComponent
  }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule {}

解析器服务:

@Injectable({
  providedIn: 'root'
})
export class DemoResolverService implements Resolve<SomeData> {
  constructor(private logic: demoService) {}

  resolve(): Observable<SomeData> {
    console.log('dataresolver run');

    return this.logic.getAll();
  }
}

解析器服务构造函数 运行 成功,并且在导航之前也调用了它。 但是组件不是构造函数不是运行ning。 知道为什么它停止工作吗? 谢谢

在app.component.html

中添加<router-outlet></router-outlet>

Working Demo

Router-outlet in Angular 用作占位符,用于根据激活的组件或当前路由状态动态加载不同的组件