在角度模块中共享课程

时间:2020-05-03 23:26:11

标签: angular module

我希望在共享模块类中可以导入其他模块。像这样:

import { SomeClass } from '/path/to/shared/module'

我想避免像这样直接导入类

import { SomeClass } from '/path/to/class'

基本上,我想要从Java的包或c#的名称空间导入的东西。我只能使用共享模块中的组件,服务或指令找到 ,但没有类。我知道我可以使用桶形文件,但这似乎可以满足我的需求

2 个答案:

答案 0 :(得分:1)

使用路径别名

文件夹结构:

src
└── shared
    ├── module1
    │   ├── index.ts
    │   └── module1.module.ts
    └── module2
        ├── index.ts
        └── module2.module.ts

src / shared / module1 / index.ts

export * from './module1.module.ts'

src / shared / module2 / index.ts

export * from './module2.module.ts'

在tsconfig.json中添加别名:

{
  "compilerOptions": {
    ...
    "paths": {
      "@shared/*": ["src/app/shared/*"],
    }
  }
}

这就是您的使用方式:

import { Module1 } from '@shared/module1';

答案 1 :(得分:0)

与使用组件,服务,指令等的模式相同...

找出整个应用程序中所有共享类的好地方。

您的共享课程:

export class SomeClass {
    ...
}

您想使用共享类的任何地方:

import { SomeClass } './path/to/shared/class';

看看MDN上的一些示例:

https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export

https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/import

但是,如果您要使此超级“角度化”,则可能要考虑使用library