Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在运行时针对不同国家/地区对angular应用程序进行区域化_Javascript_Angular_Internationalization_Requirejs - Fatal编程技术网

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循环为许多国家编辑此服务文件,对吗???我们需要一些东西,比如基于国家,它必须自己加载特定的国家组件…我们必须在网页中配置吗???