Angular 如何更改角度视图中的管线对象数据

Angular 如何更改角度视图中的管线对象数据,angular,Angular,我有如下的路由文件 const routes: Routes = [ { path: '', component: DashboardComponent, canActivate: [DashboardRoleGuard], children: [{ path: 'admin', component: AdminDashboardComponent // canActivateChild: [RedirectGuar

我有如下的路由文件

    const routes: Routes = [
  {
    path: '',
    component: DashboardComponent,
    canActivate: [DashboardRoleGuard],
    children: [{
      path: 'admin',
      component: AdminDashboardComponent
      // canActivateChild: [RedirectGuard]
    }, {
      path: 'user',
      component: UserDashboardComponent
      // canActivateChild: [RedirectGuard]
    }],
    data: {
      expectedRole1: ["admin", "SiteAdmin", "OrgAdmin", "SuperAdmin"],
      expectedRole2: ["user", "NormalUser"],
      redirectTo: "",
      isManual: false
    }
  }]
在数据部分,我有一个标志isManual。所以我想改变flag的值。我在route guard中尝试了以下代码

  canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {

// this will be passed from the route config
// on the data property
const expectedRole1 = next.data.expectedRole1;
const expectedRole2 = next.data.expectedRole2;
  debugger
console.log(next.data);  

if (state.url.indexOf("admin") > -1 || state.url.indexOf("user") > -1) {
  next.data["isManual"] = true;
}
canActivate(
下一步:ActivatedRouteSnapshot,
状态:RouterStateSnashot):可观察的|承诺|布尔值{
//这将从路由配置中传递
//关于数据属性
const expectedRole1=next.data.expectedRole1;
const expectedRole2=next.data.expectedRole2;
调试器
console.log(next.data);
if(state.url.indexOf(“admin”)>-1 | | state.url.indexOf(“user”)>-1){
next.data[“isManual”]=true;
}

但是该值没有修改,任何人都会告诉我如何执行此操作。

为什么不在子路由上添加
isManual
属性:

const routes: Routes = [
  {
    path: '',
    component: DashboardComponent,
    canActivate: [DashboardRoleGuard],
    children: [{
      path: 'admin',
      component: AdminDashboardComponent,
      data: {isManual: true}
      // canActivateChild: [RedirectGuard]
    }, {
      path: 'user',
      component: UserDashboardComponent,
      data: {isManual: true}
      // canActivateChild: [RedirectGuard]
    }],
    data: {
      expectedRole1: ["admin", "SiteAdmin", "OrgAdmin", "SuperAdmin"],
      expectedRole2: ["user", "NormalUser"],
      redirectTo: "",
      isManual: false
    }

我认为你的问题与此类似,请访问它。这不是我问题的确切解决方案,但它帮助我解决了我的问题。谢谢@Michael Desigaud