7

当我尝试加载我的 Angular 2.0 应用程序时,出现以下错误:(索引):21 错误:错误:模块“AppModule”导入的意外值“[object Object]”

import { ModuleWithProviders }  from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { searchComponent }      from './search.Component'; 
import { landingComponent }     from './landing.Component'; 

export const routes: Routes = [
{
    path: '',
    component: searchComponent
},
{
    path: 'search',
    component: searchComponent
}];
export const routedComponents = [searchComponent, landingComponent];
export const routing: ModuleWithProviders = RouterModule.forRoot(routes);

应用模块

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule }   from '@angular/forms';
import { HttpModule }    from '@angular/http';
import { landingComponent }              from './landing.Component'; 
import { searchComponent }               from './search.Component'; 
import { routes, routedComponents }      from './app.routing';
import { homeScript }                    from './Services/homeScript';

@NgModule({
imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    routes
],
declarations: [
    landingComponent,
    searchComponent,
    routedComponents
],
providers: [
    homeScript
],
bootstrap: [landingComponent]

})
export class AppModule { }

键入启动脚本

///<reference path="./../typings/globals/core-js/index.d.ts"/>
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './appModule';

platformBrowserDynamic().bootstrapModule(AppModule)
  .then(success => console.log(`Bootstrap success`))
  .catch(error => console.log('GUY  ' + error));

如果我从导入中删除“路线”,登录页面会加载但没有任何错误。我怀疑路由中的错误,因为如果我删除 AppModule 中的“路由”,登录页面会正确加载。我尝试了很多更改,但我无法确定问题的原因。任何帮助,将不胜感激。

4

3 回答 3

11

问题是您将 routedComponents 设置为声明的一部分。由于这不是指令、组件或管道,因此您会遇到此异常。从模块声明数组中删除routedComponents,它将解决您的问题。

于 2017-01-12T21:22:40.697 回答
3

只需从导入数组中删除“路由”并添加“路由”:

imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    routing
]
于 2017-04-18T12:45:23.880 回答
-2

确保模块被正确定义为@NgModule并注意类的拼写以确保它们匹配。

请注意,这是 Angular 2 的最终版本。

另请参阅此线程以进行更多讨论: Angular 2 Release“模块导入的意外值'ElementRef'”

于 2016-10-19T23:55:43.830 回答