Angular 2 rc6组件没有加载



升级到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 Module:

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

My 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 { }
我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();
}
const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

谢谢你的帮助:)

干杯!

对于app.module,您只需要bootstrap,所以让我们从这个开始。此外,确保所有其他模块导入CommonModule。另外,根据文档,schemas不是NgModule的一部分。

确保你所有的模块都声明了它们的组件。例如,util模块没有声明。

如果还是不行,请尝试在plnkr中分享

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

虽然这工作,我不得不说我不理解模块的目的,他们在这里的工作方式。也许有人能解释一下?

回答问题:NgModule有schmeas属性:https://angular.io/docs/ts/latest/api/core/index/NgModuleMetadataType-interface.html

相关内容

  • 没有找到相关文章

最新更新