Angular 2 Unhandled Promise rejection:模板解析错误:'app-main'不是已知元素:

Pal*_*diN 1 angular2-template typescript2.0 angular2-modules angular

我有两个独立的模块app.module.ts,core.module.ts用于加载两个选择器appapp-main.

文件夹结构如下:

|main.ts
|-App
|  |-app.module.ts
|  |-Components
|    |-app.component.ts
|
|-Core
|  |-core.module.ts
|  |-Components
|    |-core.component.ts
Run Code Online (Sandbox Code Playgroud)

main.ts

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { AppModule } from './App/app.module';
if (process.env.ENV === 'production') {
    enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
Run Code Online (Sandbox Code Playgroud)

app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { CoreModule } from '../Core/core.module';
import { AppComponent } from './Components/app.component';
@NgModule({
    imports: [
        BrowserModule,
        CoreModule
    ],
    declarations: [ AppComponent ],
    bootstrap: [ AppComponent ]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

app.component.ts

import { Component } from '@angular/core';
@Component({
    selector: 'app',
    template: `<app-main></app-main>`
})
export class AppComponent {}
Run Code Online (Sandbox Code Playgroud)

core.module.ts

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CoreComponent } from './Components/core.component';
@NgModule({
    imports: [
        CommonModule
    ],
    declarations: [ CoreComponent ]
})
export class CoreModule {}
Run Code Online (Sandbox Code Playgroud)

core.component.ts

import { Component } from '@angular/core';
@Component({
    selector: 'app-main',
    template: ` App Loaded From Core`
})
export class CoreComponent {}
Run Code Online (Sandbox Code Playgroud)

我得到的问题'app-main' is not a known element:如下图所示: app-main不是已知元素 当我更改选择器app-main它工作,但没有任何错误和输出.只返回一个空白页面.

如何app.component.ts使用选择器渲染不同模块的模板?或者在单个模板中加载不同模块的不同模板?

Gün*_*uer 5

您需要列出exports导入模块中应该可用的组件:

@NgModule({
    imports: [
        CommonModule
    ],
    declarations: [ CoreComponent ],
    exports: [ CoreComponent ] // <<<< added
})
export class CoreModule {}
Run Code Online (Sandbox Code Playgroud)