Javascript 在运行时针对不同国家/地区对angular应用程序进行区域化
我们制作了一个全球应用程序,希望将其区域化到不同的国家。某些国家/地区的功能与全球组件中定义的功能类似。但有些国家要求对特定组件进行全新的功能更改,我们必须使用相同的代码库Javascript 在运行时针对不同国家/地区对angular应用程序进行区域化,javascript,angular,internationalization,requirejs,Javascript,Angular,Internationalization,Requirejs,我们制作了一个全球应用程序,希望将其区域化到不同的国家。某些国家/地区的功能与全球组件中定义的功能类似。但有些国家要求对特定组件进行全新的功能更改,我们必须使用相同的代码库 我们如何在登录应用程序后根据国家/地区加载这些组件,方法是将该组件保存在以国家/地区代码命名的两个单独文件夹中?我们必须使用requireJS吗?您可以通过使用动态组件加载程序的概念来实现这一点 这方面的实施示例如下: import { Injectable,ComponentFactoryResolver, ViewCon
我们如何在登录应用程序后根据国家/地区加载这些组件,方法是将该组件保存在以国家/地区代码命名的两个单独文件夹中?我们必须使用requireJS吗?您可以通过使用
动态组件加载程序的概念来实现这一点
这方面的实施示例如下:
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))
}
}
这里有一个相同的解释。欢迎来到SO!这个问题的质量很低。请努力阅读RequireJS已经很老了,我不推荐它。您可以通过使用工厂和/或Strategies@jasie我真的不属于英语国家对不起…我想我已经很好地解释了我的问题though@DamianDziaduch你可以发布任何示例代码吗???我们可以使用webpack来完成吗???但是如果我们必须添加许多国家,那么我们必须使用if循环为许多国家编辑此服务文件,对吗???我们需要一些东西,比如基于国家,它必须自己加载特定的国家组件…我们必须在网页中配置吗???