Angular 2 Component 不是任何 NgModule 的一部分

标签 angular upgrade

我正在将我的 Angular 2 项目从 RC5 升级到 2.0.0。我得到这个错误

Unhandled Promise rejection: Component LoginComponent is not part of any NgModule or the module has not been imported into your module. ; Zone: ; Task: Promise.then ; Value: Error: Component

主要.ts:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app.module';

platformBrowserDynamic().bootstrapModule(AppModule);

应用模块:

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule }   from '@angular/forms';
import { AppComponent }  from './app.component';
import {RouterModule} from "@angular/router";
import {AppsAdminComponent} from './AppsAdmin/AppsAdmin.component';
import {AppsManagerComponent} from './AppsManager/AppsManager.component';
import {LoginComponent} from './Login/Login.component';
import {LogoutComponent} from './Logout/logout.component';
import { Routing }  from './App.routing';
import {HttpModule} from '@angular/http';
//import {AppsManagerService} from './Service/AppsManager.service';
import {GlobalService} from './Service/GlobalService';
import {Webservice} from './Service/Webservice';

@NgModule({
    declarations: [
        AppComponent,
        LoginComponent,
        LogoutComponent,
        AppsAdminComponent,
        AppsManagerComponent
    ],
    imports: [
        BrowserModule,
        HttpModule,
        FormsModule,
        Routing
    ],
    providers: [
        GlobalService,
        Webservice

    ],
    bootstrap: [
        AppComponent
    ]
})
export class AppModule {
}

登录@Component:

@Component({
    selector: 'Login',
    templateUrl: 'App/Login/Login.html',
    providers: [LoginService],
    styleUrls: ['App/Login/Login.css']
})

怎么了?

最佳答案

我在从 RC5 到 Final 时遇到了同样的问题,我花了一些时间才找到答案。在记得我收到警告消息“NgModule AppModule 通过“LoginComponent”使用 LoginComponent 但它既未声明也未导入!此警告在最终后将成为错误后,我终于找到了答案。”当我最终查看该错误消息时,我发现我的答案可能与您的相似。我找到了答案 here .

这篇文章告诉我的是,在我的 app.module.ts 文件中,我声明了我的组件如下:

应用程序模块:

从 './account/index' 导入 { AccountComponent, AccountDetails }; 从 './login/index' 导入 { LoginComponent, ResetPasswordComponent };

但是在我的路由文件中是这样的:

从 './Account/Index' 导入 { AccountComponent, AccountDetails }; 从 './Login/Index' 导入 { LoginComponent, ResetPasswordComponent };

因此,由于大小写的差异,路由认为它加载的组件与模块不同,这意味着被拉入路由的组件与模块不同。

希望对您有所帮助。

关于Angular 2 Component 不是任何 NgModule 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39527722/

相关文章:

node.js - 是什么阻止我的 AngularJs 2 应用程序运行检查器中显示的命令?

Angular 2 路由别名

angular - 如何在 Angular 2 中将选择选项值设置为 null

ruby - 安装了哪个 ruby 版本?

更新后 Ruby Float#round 行为发生变化

azure - : 'upgrade' is not in the 'az' command group

angular-material-extensions/select-country - 无法获取资源

angular - 带有 plesk : Couldn't find a valid certificate with subject 'CN=SigningCertificate' 的身份服务器

mysql - MySQL 升级后,服务器连续达到 MaxClients

debian apt 软件包哈希和不匹配