컴파일 된 Angular 파일을 라우팅에 동적으로로드하는 방법은 무엇입니까?

스 플린 코드

데이터베이스는 'dist'디렉토리에서 모듈을로드해야하는 URL을 저장합니다.

{
  "personal-area": "js/compile-module.js",
  "product": "js/compile-module2.js"
}

적용 예 :

http://localhost:8282/#/personal-area

그런 다음 애플리케이션 lazy (async | dynamic | any)는 다음에서 모듈을로드합니다.

http://localhost:8282/js/compile-module.js

모듈은 사전에 미리 컴파일되어 있으며 메인 애플리케이션을 빌드하는 단계에서는 참여하지 않기 때문에 각도 모듈의 소스에 대한 경로가 없습니다.

라우팅이있는 파일 (app.routers.ts)에 구성 요소 핸들러를 저장합니다.이 핸들러는 데이터베이스에서 서버의 모듈 파일 경로 (URL 기반)를 가져옵니다.

export const ROUTES: Routes = [

    {
        path: '**',
        component: WorkspaceOutletComponent
    },

];

메인 핸들러에는 모듈을로드하려고 시도하는 메소드가 있지만 이해가 안되는 이유로 Angular가 독수리를 위해 컴파일 된 모듈을 연결하고 작동하도록하는 방법을 모릅니다.

@Component({ ... })
export class WorkspaceOutletComponent {

    constructor() {
    }

    ngOnInit() {
        // detect routing and exec init
    }

    public init(workSpaceUrl: string, workSpacePathModule: string) {
        console.log(`url: ${workSpaceUrl} path: ${workSpacePathModule}`);

        this.router.resetConfig([
            {
                path: workSpaceUrl, loadChildren: workSpacePathModule
            }
        ]);

        this.router.navigate([workSpaceUrl])
            .then(() => console.log('Navigate to'))
            .catch((e) => console.error('Error', e));
    }

}

응용 프로그램은 webpack 2를 사용하여 구축되었습니다. 그러나 라우팅을 교체 할 때 그는 저에게 실수를 썼고, 모듈을 동적으로로드하기 위해 어디를 파야할지조차 모릅니다 (데이터베이스에서 가져와야합니다). 어셈블리 중에 모듈에 대한 참조를 알지 못합니다. 소스 코드도 없기 때문에 런타임에로드하려면 타사 모듈이 필요합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

여기에 이미지 설명 입력

SystemJS를 사용하는 경우. 또한 도움이되지 않고 디스크 (소스에서)에서 모듈을로드하려고합니다.

this.router.resetConfig([
            {
                path: workSpaceUrl, loadChildren: SystemJS.import(workSpacePathModule).then(function (m) {
                    console.log(m);
                })
            }
        ]);

여기에 이미지 설명 입력

다음은 모듈로드가 작동하는 방식에 대해 설명합니다. https://github.com/angular/angular-cli/issues/4234#issuecomment-275345763

Do I understand correctly that Angular needs an exact name so that he compiles a hash map. And that's why you can not pass it as I do it, but what should I do if I do not know the correspondence between the path on the disk (since I do not have source codes)?

Meligy

Not sure whether the reset route way will work or not, but I know that you'll need to generate lazy routes for all modules you might use.

The value for loadChildren will have to be a static string. You cannot even call a function in there to get that string. Even that confuses the Angular CLI magic that works with Webpack to generate the lazy routes.

It should be fine to generate all like lazy routes anyway, and then in runtime load the one(s) you are interested in. Just be careful that resetConfig could be resetting the whole config.

또한 linkNgModuleFactory모듈 팩토리의 인스턴스 (Angular가 브라우저 또는 AoT에서 컴파일 한 후 모듈에서 생성하는 것)를 얻을 수 있으며, NgComponentOutlet.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Ubuntu에서 .java 파일을 컴파일하는 방법은 무엇입니까?

분류에서Dev

감염된 우분투 컴퓨터에서 파일을 복구하는 좋은 방법은 무엇입니까?

분류에서Dev

.exe 파일 내에서 python으로 작성된 .exe 파일을 삭제하는 방법은 무엇입니까?

분류에서Dev

런타임 컴파일 된 C # 코드에서 "UnityEngine"을 사용하는 방법은 무엇입니까?

분류에서Dev

React Native에서 컴파일 된 바인딩을 설정하는 방법은 무엇입니까?

분류에서Dev

Angular-각 값에 따라 FormBuilder에서 동적으로 생성 된 입력에서 스타일을 변경하는 방법은 무엇입니까?

분류에서Dev

런타임에서 생성 된 Angular8 코드를 컴파일하는 방법은 무엇입니까?

분류에서Dev

SSE가 활성화 된 상태에서 Linux 커널을 컴파일하는 방법은 무엇입니까?

분류에서Dev

Snakemake : 동적으로 생성 된 파일 이름으로 동적으로 생성 된 파일을 처리하는 방법은 무엇입니까?

분류에서Dev

확장 된 이미지 지원으로 파이 게임을 컴파일하는 방법은 무엇입니까?

분류에서Dev

Angular의 TS 파일 내에서 동적으로로드 된 구성 요소를 파괴하는 방법은 무엇입니까?

분류에서Dev

ServiceStack 및 Angular를 사용하여 동적으로 생성 된 XML 파일을 다운로드하는 방법은 무엇입니까?

분류에서Dev

Ubuntu에서 .java 파일을 컴파일하는 방법은 무엇입니까?

분류에서Dev

DRM으로 보호 된 WMV 파일을 새 컴퓨터로 이동하는 방법은 무엇입니까?

분류에서Dev

컴파일 된 소스 파일에서 .deb 패키지를 만드는 방법은 무엇입니까?

분류에서Dev

감염된 우분투 컴퓨터에서 파일을 복구하는 좋은 방법은 무엇입니까?

분류에서Dev

TCL에서 Delphi 컴파일 된 DLL을 사용하는 방법은 무엇입니까?

분류에서Dev

Joomla 3.2에로드 된 뷰 파일을 찾는 방법은 무엇입니까?

분류에서Dev

업로드 된 파일 목록을 비우는 방법은 무엇입니까?

분류에서Dev

Netsuite 파일 캐비닛에 파일을 자동으로 업로드하는 방법은 무엇입니까?

분류에서Dev

javac를 사용하여 txt 파일에 작성된 .java 파일을 컴파일하는 방법은 무엇입니까?

분류에서Dev

지시문을 동적으로로드하고 컴파일하는 방법은 무엇입니까?

분류에서Dev

ASP.NET MVC에서 비동기 적으로 업로드 된 양식 파일을 유지하는 방법은 무엇입니까?

분류에서Dev

노드 모듈에서 여러 컴파일 된 TS 파일을 사용하는 방법은 무엇입니까?

분류에서Dev

기본적으로 명명 된 파일로 컴파일하는 방법은 무엇입니까?

분류에서Dev

라이브 USB 부팅에서 컴퓨터로 파일을 저장하는 방법은 무엇입니까?

분류에서Dev

OneDrive에서 동기화 된 파일을 자동으로 다운로드하는 방법은 무엇입니까?

분류에서Dev

V8 엔진에서 컴파일 된 명령을 인쇄하는 방법은 무엇입니까?

분류에서Dev

지연로드 된 파일 (* .ts)을 컴파일하는 올바른 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Ubuntu에서 .java 파일을 컴파일하는 방법은 무엇입니까?

  2. 2

    감염된 우분투 컴퓨터에서 파일을 복구하는 좋은 방법은 무엇입니까?

  3. 3

    .exe 파일 내에서 python으로 작성된 .exe 파일을 삭제하는 방법은 무엇입니까?

  4. 4

    런타임 컴파일 된 C # 코드에서 "UnityEngine"을 사용하는 방법은 무엇입니까?

  5. 5

    React Native에서 컴파일 된 바인딩을 설정하는 방법은 무엇입니까?

  6. 6

    Angular-각 값에 따라 FormBuilder에서 동적으로 생성 된 입력에서 스타일을 변경하는 방법은 무엇입니까?

  7. 7

    런타임에서 생성 된 Angular8 코드를 컴파일하는 방법은 무엇입니까?

  8. 8

    SSE가 활성화 된 상태에서 Linux 커널을 컴파일하는 방법은 무엇입니까?

  9. 9

    Snakemake : 동적으로 생성 된 파일 이름으로 동적으로 생성 된 파일을 처리하는 방법은 무엇입니까?

  10. 10

    확장 된 이미지 지원으로 파이 게임을 컴파일하는 방법은 무엇입니까?

  11. 11

    Angular의 TS 파일 내에서 동적으로로드 된 구성 요소를 파괴하는 방법은 무엇입니까?

  12. 12

    ServiceStack 및 Angular를 사용하여 동적으로 생성 된 XML 파일을 다운로드하는 방법은 무엇입니까?

  13. 13

    Ubuntu에서 .java 파일을 컴파일하는 방법은 무엇입니까?

  14. 14

    DRM으로 보호 된 WMV 파일을 새 컴퓨터로 이동하는 방법은 무엇입니까?

  15. 15

    컴파일 된 소스 파일에서 .deb 패키지를 만드는 방법은 무엇입니까?

  16. 16

    감염된 우분투 컴퓨터에서 파일을 복구하는 좋은 방법은 무엇입니까?

  17. 17

    TCL에서 Delphi 컴파일 된 DLL을 사용하는 방법은 무엇입니까?

  18. 18

    Joomla 3.2에로드 된 뷰 파일을 찾는 방법은 무엇입니까?

  19. 19

    업로드 된 파일 목록을 비우는 방법은 무엇입니까?

  20. 20

    Netsuite 파일 캐비닛에 파일을 자동으로 업로드하는 방법은 무엇입니까?

  21. 21

    javac를 사용하여 txt 파일에 작성된 .java 파일을 컴파일하는 방법은 무엇입니까?

  22. 22

    지시문을 동적으로로드하고 컴파일하는 방법은 무엇입니까?

  23. 23

    ASP.NET MVC에서 비동기 적으로 업로드 된 양식 파일을 유지하는 방법은 무엇입니까?

  24. 24

    노드 모듈에서 여러 컴파일 된 TS 파일을 사용하는 방법은 무엇입니까?

  25. 25

    기본적으로 명명 된 파일로 컴파일하는 방법은 무엇입니까?

  26. 26

    라이브 USB 부팅에서 컴퓨터로 파일을 저장하는 방법은 무엇입니까?

  27. 27

    OneDrive에서 동기화 된 파일을 자동으로 다운로드하는 방법은 무엇입니까?

  28. 28

    V8 엔진에서 컴파일 된 명령을 인쇄하는 방법은 무엇입니까?

  29. 29

    지연로드 된 파일 (* .ts)을 컴파일하는 올바른 방법은 무엇입니까?

뜨겁다태그

보관