0
我之前发布了一个关于DI的问题,因为我在这里发现了同样的问题。我不知道它是否在做或我的开发设置?注入Angular 2路由器不能正常工作
我试图将路由器注入组件。我含模块看起来像这样
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { Router } from '@angular/router';
import { LoginComponent } from './login.component';
import { User } from '../user/user';
@NgModule({
imports: [ BrowserModule, FormsModule, Router ],
declarations: [ LoginComponent ],
bootstrap: [ LoginComponent ]
})
export class LoginModule { }
这是我的组件
import { Component } from '@angular/core';
import { Inject } from '@angular/core';
import { Router } from '@angular/router';
import { User } from '../user/user';
@Component({
templateUrl: './login.template.html'
})
export class LoginComponent {
user = new User("", "");
submitted:boolean = false;
inProgress:boolean = false;
constructor (private router : Router) {
}
}
当我运行的应用程序,我碰到下面的错误
Can't resolve all parameters for LoginComponent
我的构建过程如下:
run inline-angular-compiler(在实际的js文件中嵌入templateUrl) 运行tsc(将ts转换为js)
我听说运行打印机转换器可能会导致DI问题,但替代方法是什么?
编辑:
我的路由器设置
import { Routes, RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { DashboardComponent } from './dashboard/dashboard.component';
import { UserRoutes } from './user/user.routing';
import { DashboardRoutes } from './dashboard/dashboard.routing';
import { LoginRoutes } from './login/login.routing';
const routes: Routes = [
...UserRoutes,
...DashboardRoutes,
...LoginRoutes,
//this needs to redirect to a homepage
{path:'', component: DashboardComponent}
];
export const appRoutingProviders: any[] = [
];
export const routing = RouterModule.forRoot(routes);
你的路由配置在哪里?你应该将'RouterModule'而不是''Router'导入你的导入。 –
我试图使用router.navigate。所以我不认为导入RouterModule会工作?我有一个标准的路由器设置,但是我把它添加到上面以供参考@MadhuRanjan – mwild
将'Router'添加到'NgModule'中的'imports'肯定是错误的。不要将TypeScript导入与模块导入混淆。您需要在'AppModule'中导入'routing'('RouterModule.forRoot(routes)')。我在你的问题中没有看到这个代码。我也认为你应该在'LoginModule'的'NgModule'中导入'RouterModule'。 –