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