Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有延迟加载和深层模块结构的Angular 2路由器重用策略_Angular_Lazy Loading_Reusability_Angular Router - Fatal编程技术网

具有延迟加载和深层模块结构的Angular 2路由器重用策略

具有延迟加载和深层模块结构的Angular 2路由器重用策略,angular,lazy-loading,reusability,angular-router,Angular,Lazy Loading,Reusability,Angular Router,我是angular的新手,我正在尝试实施以下路由器重用策略以及延迟加载: 从“@angular/router”导入{RouterUseStrategy,ActivatedRouteSnapshot,DetachedRouteHandle}; 导出类CustomReuseStrategy实现RouterUseStrategy{ 处理程序:{[key:string]:DetachedRouteHandle}={}; shouldDetach(路由:ActivatedRouteSnapshot):布

我是angular的新手,我正在尝试实施以下路由器重用策略以及延迟加载:

从“@angular/router”导入{RouterUseStrategy,ActivatedRouteSnapshot,DetachedRouteHandle};
导出类CustomReuseStrategy实现RouterUseStrategy{
处理程序:{[key:string]:DetachedRouteHandle}={};
shouldDetach(路由:ActivatedRouteSnapshot):布尔值{
调试('CustomReuseStreatgy:shouldDetach',route);
返回true;
}
存储(路由:ActivatedRouteSnapshot,句柄:DetachedRouteHandle):无效{
调试('CustomReuseStreatgy:store',route,handle);
this.handlers[route.routeConfig.path]=句柄;
}
shouldAttach(路由:ActivatedRouteSnapshot):布尔值{
调试('CustomReuseStreatgy:shouldAttach',route);
return!!route.routeConfig&&!!this.handlers[route.routeConfig.path];
}
检索(路由:ActivatedRouteSnapshot):DetachedRouteHandle{
调试('CustomReuseStrategy:retrieve',route);
如果(!route.routeConfig)返回null;
返回this.handlers[route.routeConfig.path];
}
shouldReuseRoute(未来:ActivatedRouteSnapshot,当前:ActivatedRouteSnapshot):布尔值{
调试('CustomReuseStrategy:shouldReuseRoute',future,curr);
return future.routeConfig==curr.routeConfig;
}

}
解决了这个问题。看看这个答案吧,对我来说非常有效

我的
应用程序路由。模块

从'@angular/core'导入{NgModule};
从“@angular/common”导入{CommonModule};
从'@angular/router'导入{Routes,RouterModule};
从“./shared/auth/auth.guard”导入{AuthGuard};
常数路由:路由=[
{
路径:“”,
loadChildren:“./layout/layout.module#LayoutModule”,
canActivate:[AuthGuard]
},
{
路径:“login”,loadChildren:'。/login/login.module#LoginModule',
数据:{key:'login',shouldDetach:'no'}
},
{path:'notfound',loadChildren:'./未找到/未找到。模块#NotFoundModule',数据:{key:'notfound'},
{路径:'**',重定向到:'未找到'}
];
@NGD模块({
进口:[
公共模块,
RouterModule.forRoot(路由)
],
出口:[
路由模块
],
声明:[]
})
导出类AppRoutingModule{}
我的
自定义重用策略。ts

从'@angular/router'导入{RouterUseStrategy,ActivatedRouteSnapshot,DetachedRouteHandle};
导出类CustomReuseStrategy实现RouterUseStrategy{
处理程序:{[key:string]:DetachedRouteHandle}={};
shouldDetach(路由:ActivatedRouteSnapshot):布尔值{
如果(route.data.shouldDetach==='no'){
返回false;
}
返回true;
}
存储(路由:ActivatedRouteSnapshot,句柄:DetachedRouteHandle):无效{
this.handlers[route.data.key]=句柄;
}
shouldAttach(路由:ActivatedRouteSnapshot):布尔值{
return!!route.data.key&&!!this.handlers[route.data.key];
}
检索(路由:ActivatedRouteSnapshot):DetachedRouteHandle{
如果(!route.data.key){
返回null;
}
返回this.handlers[route.data.key];
}
shouldReuseRoute(未来:ActivatedRouteSnapshot,当前:ActivatedRouteSnapshot):布尔值{
返回future.data.key==curr.data.key;
}
}

解决了这个问题。看看这个答案吧,对我来说非常有效

我的
应用程序路由。模块

从'@angular/core'导入{NgModule};
从“@angular/common”导入{CommonModule};
从'@angular/router'导入{Routes,RouterModule};
从“./shared/auth/auth.guard”导入{AuthGuard};
常数路由:路由=[
{
路径:“”,
loadChildren:“./layout/layout.module#LayoutModule”,
canActivate:[AuthGuard]
},
{
路径:“login”,loadChildren:'。/login/login.module#LoginModule',
数据:{key:'login',shouldDetach:'no'}
},
{path:'notfound',loadChildren:'./未找到/未找到。模块#NotFoundModule',数据:{key:'notfound'},
{路径:'**',重定向到:'未找到'}
];
@NGD模块({
进口:[
公共模块,
RouterModule.forRoot(路由)
],
出口:[
路由模块
],
声明:[]
})
导出类AppRoutingModule{}
我的
自定义重用策略。ts

从'@angular/router'导入{RouterUseStrategy,ActivatedRouteSnapshot,DetachedRouteHandle};
导出类CustomReuseStrategy实现RouterUseStrategy{
处理程序:{[key:string]:DetachedRouteHandle}={};
shouldDetach(路由:ActivatedRouteSnapshot):布尔值{
如果(route.data.shouldDetach==='no'){
返回false;
}
返回true;
}
存储(路由:ActivatedRouteSnapshot,句柄:DetachedRouteHandle):无效{
this.handlers[route.data.key]=句柄;
}
shouldAttach(路由:ActivatedRouteSnapshot):布尔值{
return!!route.data.key&&!!this.handlers[route.data.key];
}
检索(路由:ActivatedRouteSnapshot):DetachedRouteHandle{
如果(!route.data.key){
返回null;
}
返回this.handlers[route.data.key];
}
shouldReuseRoute(未来:ActivatedRouteSnapshot,当前:ActivatedRouteSnapshot):布尔值{
返回future.data.key==curr.data.key;
}
}

看到这个答案,对我很好。看到这个答案,对我很好。我们可以将动态数据从一条路由传递到另一条路由吗?我们可以将动态数据从一条路由传递到另一条路由吗