我使用Azure AD身份验证进行角度4应用程序。用户登录后,我将用户重定向到Home组件。在Home组件上,我调用API来获取某些数据并在Grid中加载。我有文本框,用户可以在其中过滤网格数据并为此编写自定义PIPE。 问题:Home组件首次加载时,数据正确,但过滤器无法工作,直到我第一次手动刷新页面。 以下是我的路线配置。
const appRoutes: Routes = [
{ path: '', redirectTo: '/login', pathMatch: 'full' },
{ path: 'home', component: HCOHomeComponent,canActivate: [OAuthCallbackHandler]},
{ path: 'login', component: LoginComponent },
{ path: 'hco/:hcoId', component: HCODetailsComponent, canActivate: [OAuthCallbackHandler]},
{ path: 'hco/edit/:hcoId', component: HCOEditComponent,canActivate: [OAuthCallbackHandler] },
{ path: 'hcoevent/:hcoeventId', component: HCOEventDetailsComponent, canActivate: [OAuthCallbackHandler] },
{ path: 'hcoevent/edit/:hcoeventId', component: HCOEventEditComponent, canActivate: [OAuthCallbackHandler] },
{ path: 'id_token', component: OAuthCallbackComponent, canActivate: [OAuthCallbackHandler] },
{ path: 'access_token', component: OAuthCallbackComponent, canActivate: [OAuthCallbackHandler] },
];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes,{ useHash: true });
我有这样的过滤器,
<div *ngFor="let hco of lstResult | searchFilter: {Name: searchID}">
其中searchID是我的文本框值。
Home组件具有以下代码,用于使用服务从API获取数据。
GetAllHCOs() {
this.msg = 'Loading...';
this.hcoService.get()
.subscribe((hcos: any) => {
this.zone.run(() => {
this.lstResult = hcos; this.msg = '';
})
}, error => this.msg = '');
}
如果我在这里做错了,请告诉我。 而且当我在第一次加载时调用编辑它不起作用,我必须刷新页面,然后一切正常。