Vel*_*dan 12 typescript angular
我有ng2应用程序,我有app/app.module ...和core/core.module ....
在核心模块中,我有一些模块在app顶级使用,只有一次(比如在官方文档中),但其中一个模块需要路由器模块(某些功能正在使用路由器).
但路由器是在App.module中提供的(带有所有App路由).我遇到了问题 - 没有来自core/header/header.component的ActivatedRouteSnapshot提供程序
我怎么解决它?我应该将我的标题从核心放到app文件夹,还是应该为核心模块提供路由器?谢谢.
使用路由器模块更新PS.我仍然遇到错误 - 没有RouterStateSnapshot的提供程序!
标准路由器和activatedRoute正在工作的其他有趣的事情.因此,当我 从构造函数中删除RouterStateSnapshot(并删除相对console.log)时,所有代码都正常工作.所以看起来像routerModule是可用的,这真的很奇怪.
import { NgModule, Component, OnInit} from '@angular/core';
import { CommonModule } from '@angular/common';
//import { ROUTER_DIRECTIVES, Router } from '@angular/router-deprecated';
import { Router, ActivatedRoute, Params, RouterStateSnapshot } from '@angular/router';
/* ------- !Angular2 core ---------*/
import {HTTPPatientsListService} from '%cgm_sharedServices%/http_patients_list.service';
/* ------- !Services ---------*/
import { Config } from 'appConfig';
/* ------- !Config ---------*/
@Component({
selector: 't_breadcrumbs',
template: `
<h1>Bread</h1>
<!--<div class="row wrapper border-bottom white-bg page-heading">-->
<!--<div class="col-lg-10">-->
<!--<h2>{{staticData.title}}</h2>-->
<!--<ol class="breadcrumb">-->
<!--<li>-->
<!--<a [routerLink]="['Dashboard']" tabindex="-1">{{staticData.homeName}}</a>-->
<!--</li>-->
<!--<li *ngFor="let crumbData of crumbsCollection; let last = last" [ngClass]="{'active': last}">-->
<!--<a *ngIf="!last" (click)="navigateTo(crumbData.urlPath)" tabindex="-1">{{crumbData.displayName}}</a>-->
<!--<span *ngIf="last"><b>{{crumbData.displayName}}</b></span>-->
<!--</li>-->
<!--</ol>-->
<!--</div>-->
<!--<div class="col-lg-2">-->
<!---->
<!--</div>-->
<!--</div>-->
`,
styles: [`
.breadcrumb {
background-color: #ffffff;
padding: 0;
margin-bottom: 0;
}
.breadcrumb > li a {
color: inherit;
}
.breadcrumb > .active {
color: inherit;
}
`]
})
export class BreadcrumbsComponent implements OnInit {
// contains home static name and dynamic current component name
private staticData = {
'title': '',
'homeName': 'Home'
};
private tempTitle: string;
private crumbsCollection = [];
constructor(
private router: Router,
private activatedRoute: ActivatedRoute,
private routerStateSnap: RouterStateSnapshot,
private config: Config,
private httpPat: HTTPPatientsListService) { }
ngOnInit() {
console.log(this.activatedRoute);
console.log(this.routerStateSnap);
}
}
import { RouterModule } from '@angular/router';
@NgModule({
imports: [ CommonModule, RouterModule ],
declarations: [ BreadcrumbsComponent ],
exports: [ BreadcrumbsComponent ]
})
export class BreadcrumbsModule {}
Run Code Online (Sandbox Code Playgroud)
Est*_*ask 26
RouterStateSnapshot接口的预期用途是:
constructor(router: Router) {
const snapshot: RouterStateSnapshot = router.routerState.snapshot;
//...
}
Run Code Online (Sandbox Code Playgroud)
它用作接口,而不是提供者.它可能在警卫中可用,但这是因为它作为防护方法中的参数提供,而不是作为注射剂(参见CanActivate例如).
| 归档时间: |
|
| 查看次数: |
6833 次 |
| 最近记录: |