在 Angular2 路由中使用 Resolve [英] Using Resolve In Angular2 Routes
本文介绍了在 Angular2 路由中使用 Resolve的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在 Angular 1 中,我的配置如下所示:
In Angular 1 my config looks like this:
$routeProvider
.when("/news", {
templateUrl: "newsView.html",
controller: "newsController",
resolve: {
message: function(messageService){
return messageService.getMessage();
}
}
})
如何在 Angular2 中使用解析?
How to use resolve in Angular2?
推荐答案
@AndréWerlang 的回答很好,但是如果你想让页面上解析的数据在路由参数改变时改变,你需要到:
@AndréWerlang's answer was good, but if you want the resolved data on the page to change when the route parameter changes, you need to:
解析器:
@Injectable()
export class MessageResolver implements Resolve<Message> {
constructor(private messageService: MessageService, private router: Router) {}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Message> {
const id = +route.params['id'];
return this.messageService.getById(id);
}
}
您的组件:
ngOnInit() {
this.route.data.subscribe((data: { message: Message }) => {
this.message = data.message;
});
}
这篇关于在 Angular2 路由中使用 Resolve的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文