关于 angular-resolvers
面向在路由导航期间加载数据的 Angular 开发者的参考技能。内容介绍如何定义函数式解析器、将其关联到路由、在组件中读取解析数据并处理错误。
主要功能
- 01函数式路由解析器
- 02将解析器关联到路由
- 03在组件中读取解析数据
- 04处理解析器错误
- 05配置多个解析器
适用场景
- 01显示路由前加载用户数据
- 02向路由组件提供已解析的数据
- 03加载失败时返回备用值
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oguzhan18/ angular-ecosystem-skills --skill angular-resolvers安装后在 Claude Code 中输入/angular-resolvers确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/discussions/_INDEX.mdreferences/docs/_INDEX.mdreferences/issues/_INDEX.mdreferences/releases/_INDEX.md详细介绍
Angular 路由解析器
版本: Angular 21(2025) 标签: 解析器、路由、数据加载
参考: 解析器指南
最佳实践
- 创建函数式解析器
export const userResolver: ResolveFn<User> = (route, state) => {
const userService = inject(UserService);
const userId = route.paramMap.get('id');
return userService.getUser(userId!);
};
- 在路由中使用解析器
const routes: Routes = [
{
path: 'user/:id',
resolve: { user: userResolver },
component: UserComponent
}
];
- 在组件中获取已解析的数据
@Component({})
export class UserComponent {
private route = inject(ActivatedRoute);
user = this.route.snapshot.data['user'];
// Or with input binding (Angular 17+)
userId = input<string>();
}
- 处理解析器错误
export const dataResolver: ResolveFn<Data> = (route, state) => {
const service = inject(DataService);
return service.getData().pipe(
catchError(() => of(null))
);
};
- 使用多个解析器
const routes: Routes = [
{
path: 'dashboard',
resolve: {
user: userResolver,
settings: settingsResolver
},
component: DashboardComponent
}
];
评论
支持 Markdown