我打算将我的5个应用程序实例之一用于两个不同的客户端(比方说,客户端的代号为X和Y)。
我想对两者使用相同的角度展开。我的后端是用Java编写的,其编写方式是根据客户端ID从BE提取所有数据(更新和检索)。
比方说,当用户希望从客户端X访问服务时,用户可以键入http://url.com/X/rest_of_the_url并使用具有客户端X凭据的应用程序。 当用户想要使用客户端Y服务时,他们可以使用http://url.com/Y/rest_of_the_url
进行访问我该如何在角度5中做到这一点?
答案 0 :(得分:2)
您可以使用解析器和客户端变量来实现该行为。
export let AppRoutes = [
{
path: '',
children: [
{
path: '',
component: Choose the brand component (if there is any)
},
{
path: ':client',
resolve: {
brand: ClientServiceInfo
},
children: [ ... ]
解析器
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { ActivatedRouteSnapshot, Resolve } from '@angular/router';
import { ClientService } from '.....';
import { LocalService } from '.....'
@Injectable()
export class BrandResolver implements Resolve\<Brand\> {
constructor(
private brandService: ClientService,
private LocalService: AppStatusService) {
}
resolve(route: ActivatedRouteSnapshot): Observable<Brand> {const clientName = route.params['client'];
return this.ClientService.whateverRetrieveInfo(clientName).subscribe((client: any) => {
// Add some basic information related to the client on the localService
// Voila entire success to the rest of the logic o
});
}
}
您必须确定要为客户提供哪些信息:)
希望这个答案对您有好处!