我有这个路由器解析器,用于从Google Firestore检索数据。我正在尝试使用解析器来预先获取数据。当我将调试器放置在resolve函数上时,它将向我显示从服务器检索的数据。但是它永远不会从resolve()方法返回。谁能帮我一下。
路由模块
const routes: Routes = [
{ path: '', component: HomeComponent},
{ path: 'projects', component: ProjectsComponent, resolve: {projectData: ProjectResolver} },
{ path: 'about', component: AboutComponent}
];
Run Code Online (Sandbox Code Playgroud)
应用模块
providers: [
ProjectService,
ProjectResolver
],
Run Code Online (Sandbox Code Playgroud)
解析器服务
import { Observable } from 'rxjs';
import { ActivatedRouteSnapshot, RouterStateSnapshot, Resolve } from '@angular/router';
import { Injectable } from '@angular/core';
import { ProjectService } from './project.service';
import { map } from "rxjs/operators";
import { Project } from './project.model';
@Injectable()
export class ProjectResolver implements Resolve<Project[]> { …Run Code Online (Sandbox Code Playgroud) 如何限制组件在背压时加载.实际上我有三个组件A(正常组件),B(LoginComponent)和C(Otp验证组件).我在某个按钮点击时从A路由到组件B,从B到C路由到组件B以验证用户.现在在对组件C进行验证之后,我想回到组件'A',并希望从历史记录中删除组件'B'和'C',以便在从浏览器返回时不加载'B'(LoginComponent)和'C'再次.那怎么能在angularjs 2中做到这一点.
typescript angular2-routing angular-component-router angular-components angular
我有一个使用*ngFor循环定义的ng-accordion ,我想调整位置并将路径绑定到特定面板的视图.理想情况下,当客户端单击以展开面板时,该位置将在浏览器中更新,并且新的历史记录项将存储在浏览器中.此外,如果客户输入的URL对应于正在显示的特定手风琴项目,我希望确保反映出适当的状态.
例如:
<ngb-accordion closeOthers="true">
<ngb-panel *ngFor="let faq of faqService.getItems()" id="{{faq.id}}" title="{{faq.title}}">
<ng-template ngbPanelContent>
{{faq.body}}
</ng-template>
</ngb-panel>
</ngb-accordion>
Run Code Online (Sandbox Code Playgroud)
映射的路由可能是:
/faq/ABCD
/faq/EFGH
/faq/IJKL
Run Code Online (Sandbox Code Playgroud)
切换特定面板将更新位置/ ActiveRoute并粘贴将映射到特定面板的URL将导致该面板被展开.关于如何连线的任何建议?