javascript - 在运行时针对不同国家/地区对 Angular 应用程序进行区域化
问题描述
我们制作了一个全球应用程序,我们希望将其区域化到不同的国家。某些国家/地区具有与角度全球组件中定义的类似功能。但是有些国家需要对特定组件进行全新的功能更改,我们必须使用相同的代码库。
我们如何在登录到应用程序后根据国家/地区加载这些组件,方法是将该组件维护在两个以国家代码命名的单独文件夹中?我们必须为此使用requireJS吗?
解决方案
您可以通过使用Dynamic component loader
. 参考
一个示例 implementationatino 可以如下:
import { Injectable,ComponentFactoryResolver, ViewContainerRef } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
@Injectable({ providedIn: 'root' })
export class DynamicComponentLoadingService{
constructor(private cfr: ComponentFactoryResolver) {}
async loadComponent(vcr: ViewContainerRef, country: string) {
// component-1
const { Component1 } = await import('./compoennt1/component1.component');
const { Component2 } = await import('./component2/component2.component');
vcr.clear();
// for instance we want to load component-1 for US
let component : any = country === 'US' ? Component1: Component2;
return vcr.createComponent(
this.cfr.resolveComponentFactory(component))
}
}
这是解释相同内容的详细帖子。
推荐阅读
- sql - PostgreSQL UPDATE JOIN 永远运行
- react-native - 如何安排更改数据博览会的通知
- kentico - 如何在 Kentico 12 Page Builder 中创建 MVC 小部件
- scala - Counting conccurent user sessions by time intervals
- regex - 使用 sed 或 awk 转换键值对
- python - 为什么Flask中的错误“AttributeError:'NoneType'对象没有属性”有时会触发,而不是经常触发?
- python - pandas,matplolib,当我没有最近几天的数据时,如何绘制最近 30 天的空位置图
- c - 在 C 中使用 ## 运算符连接字符串
- python-3.x - cx_freeze 没有名为 os 的模块
- c# - C# - 检测到文件修改