在Angular中基于条件加载ngModule及其组件

时间:2018-04-10 21:05:43

标签: angular angular-module

我是角色的新手,我想知道是否可以加载和模块及其组件我是根据app.module的条件制作的,或者它是最适合做的地方此

基本上我想做点什么:

if(user.deparment === 'coms') {
  //Use the communications.module and its components
}

我附上了一些图片,所以你们可以看到应用程序的结构。如果有必要,我可以添加代码而不是图片。

App.module图片 enter image description here

Communications.module图片 enter image description here

2 个答案:

答案 0 :(得分:1)

模块在应用程序开始时加载。您需要导入组件,并使用您需要的任何组件。您需要将组件注册到模块,以便可以访问组件。

答案 1 :(得分:1)

您可以进行简单的三元检查以有条件地导入模块。像这样:

const getReleaseUrl = (discogsId) => {
  return new Promise((resolve, reject) => {
    db.getRelease(discogsId, (err, data) => {
      if (err) {
        reject(err);
      }

      resolve(data);
    });
  });
};

getReleaseUrl("53130")
  .then(console.log);
  .catch(console.error);

Live demo