我有一个Angular 6.x应用,其中我的路线是延迟加载的。我创建了一个解析器,将数据添加到包含我所有功能模块中所需数据的服务中。从功能模块中的组件访问服务时,数据不存在。如果在其中一个功能模块中创建服务,并使用相同的解析器向该服务添加数据,则该模块可使用该数据。不确定这是否是正确的方法。我不想使用ActivatedRouteSnapshot来检索我的数据。如果您知道我做错了什么,或者有更好的解决方法,我将不胜感激。
解析器
@Injectable({
providedIn: 'root'
})
export class AppWideSettingsResolverService implements Resolve<any>{
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
this.appSettingsService.mode = appSettings.mode;
}
constructor(private appSettingsService: AppSettingsService) { }
}
服务
@Injectable({
providedIn: 'root'
})
export class AppWideSettingsService {
mode: any;
data: any;
constructor() { }
public isDev = (): boolean => {
return this.mode === 'dev';
}
}
路线
export const routes: Routes = [
{
path: '',
component: MainLayoutComponent,
data: {pageTitle: 'Home'},
resolve: {
data: AppWideSettingsResolverService
},
children: [
{path: 'home', loadChildren: 'app/+home/home.module#HomeModule',
...
答案 0 :(得分:0)
我最终没有使用服务,而是直接使用了设置文件。