使用相同的 angular 5 部署访问多个客户端
Access multiple clients using same angular 5 deployment
我打算为两个不同的客户使用我的 angular 5 个应用程序实例之一(假设客户的代号是 X 和 Y)。
我想对它们使用相同的 angular 部署。我的后端是用 Java 编写的,它的编写方式是根据客户端 ID 从 BE 获取所有数据(更新和检索)。
假设当用户想要从客户端 X 访问服务时,用户可以键入 http://url.com/X/rest_of_the_url 并使用具有客户端 X 凭据的应用程序。
当用户想使用客户端Y服务时,可以使用http://url.com/Y/rest_of_the_url
访问
我如何在 angular 5 中执行此操作?
您可以使用解析器和客户端变量实现该行为。
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
});
}
}
你得弄清楚你需要给客户什么信息:)
希望这个回答对您有帮助!
我打算为两个不同的客户使用我的 angular 5 个应用程序实例之一(假设客户的代号是 X 和 Y)。
我想对它们使用相同的 angular 部署。我的后端是用 Java 编写的,它的编写方式是根据客户端 ID 从 BE 获取所有数据(更新和检索)。
假设当用户想要从客户端 X 访问服务时,用户可以键入 http://url.com/X/rest_of_the_url 并使用具有客户端 X 凭据的应用程序。 当用户想使用客户端Y服务时,可以使用http://url.com/Y/rest_of_the_url
访问我如何在 angular 5 中执行此操作?
您可以使用解析器和客户端变量实现该行为。
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
});
}
}
你得弄清楚你需要给客户什么信息:)
希望这个回答对您有帮助!