Angular 2 rc6组件未加载

时间:2016-09-11 17:37:12

标签: angular angular2-components

将我的APP升级到rc6后,我的一些组件无法加载/渲染。 在我的APP中,我在routing_components和util_components之间有所不同。我注意到我的所有routing_components工作正常,只有util_components出现问题。

我在浏览器控制台上没有编译错误或错误。简单地说:

  

Angular 2正在开发模式下运行。调用enableProdMode()来   启用生产模式。

以下是我使用我的组件的方式:

<cl-largetext [options]="textTwo">Loading Text...</cl-largetext>

我在网站上看到的只有:

  

加载文字......

我为每个组件创建了1个模块,并有4个包装模块导入所谓的组件模块:

routing_module:导入包含路由组件的所有模块

util_module:导入包含util组件的所有模块

pipes_module:导出我的所有自定义管道

services_module:提供我的所有服务

AppModule导入我的所有包装模块。

现在我将向您展示1个util_component的层次结构,它不会呈现:

组件:

import { Component, Input } from '@angular/core';
import { LargetextI } from    './../../../interfaces/largetext/largetext.interface.ts';
import '../../../../../public/css/styles.css';
@Component({
  selector: 'cl-largetext',
  templateUrl: './largetext.component.html',
  styleUrls: ['./largetext.component.css']
})
export class LargetextComponent {
    constructor(){}
    @Input() options: LargetextI;
 }

组件模块:

import { NgModule, CUSTOM_ELEMENTS_SCHEMA }      from '@angular/core';
import { CommonModule }      from '@angular/common';
import { LargetextComponent }  from './../../../components/util_components/largetext/largetext.component.ts';

@NgModule({
    declarations: [ LargetextComponent ],
    bootstrap:    [ LargetextComponent ],
    imports: [ CommonModule ],
    schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
export class LargetextModule { }

Util模块:

import { NgModule }      from '@angular/core';
import {LargetextModule} from "./largetext/largetext.module";
// ... more modules
@NgModule({
    declarations: [ ],
    bootstrap:    [ ],
    imports: [ LargetextModule, ... more modules ],
    schemas: [ ]
})
export class UtilModule { }

我的AppModule:

import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { RouterModule } from '@angular/router';
import { AppComponent }  from './app.component';
import { ROUTES } from './app.routes';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';
import { UtilModule} from "./modules/util_modules/util.module";
import { RoutingModule } from "./modules/routing_modules/routing.module";
import { ServicesModule } from "./modules/services_module/service.module";
import {PipesModule} from "./modules/util_modules/pipes.module";

@NgModule({
    bootstrap: [AppComponent],
    declarations: [AppComponent],
    imports: [ HttpModule, BrowserModule, UtilModule, RoutingModule, ServicesModule, PipesModule, RouterModule.forRoot(ROUTES, { useHash: false })],
    schemas: [ CUSTOM_ELEMENTS_SCHEMA ],
    providers: [ ]
})
export class AppModule { }

我的主要内容

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { AppModule } from './app/app.module';

if (process.env.ENV === 'production') {
  enableProdMode();
}

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

感谢您的帮助:)

干杯!

2 个答案:

答案 0 :(得分:1)

bootstrap只需要app.module所以让我们从这开始吧。此外,请确保所有其他模块都导入CommonModule。另外,根据文档,schemas不属于NgModule

确保所有模块都声明了其组件。例如,util模块没有声明。

如果仍然无效,请尝试在plnkr中分享。

答案 1 :(得分:0)

我通过仅使用1个模块(AppModule)来解决这个问题。 它引导AppComponent,声明所有组件和管道,导入所有Angular模块(表单,浏览器等),导出管道,提供服务并使用CUSTOM_ELEMENTS_SCHEMA。

虽然这有效但我不得不说我不了解模块的用途。也许有人能解释一下?

回答mrgoos: NgModule具有属性schmeashttps://angular.io/docs/ts/latest/api/core/index/NgModuleMetadataType-interface.html