我正嘗試使用服務來存儲全局使用的信息。目前它應該包含當前用戶。無法解析GlobalsService的所有參數:(?)
import {Injectable} from '@angular/core';
import {UserService} from "../user/user.service";
import {User} from "../user/user";
@Injectable()
export class GlobalsService {
private currentUser: User = null;
constructor(private userService: UserService) {
this.userService.getCurrentUser().subscribe(user => this.currentUser = user);
}
}
這是我app.module.ts
:
import {NgModule} from "@angular/core";
import {BrowserModule} from '@angular/platform-browser';
import {HttpModule} from '@angular/http';
import {routing} from "./app.routing";
import {AppComponent} from './app.component';
import {UserModule} from "./user/user.module";
import {CanActivateViaOAuthGuard} from "./auth/oAuth.canActivateGuard";
import {GlobalsService} from './globals/globals.service';
@NgModule({
imports: [BrowserModule, HttpModule, routing, UserModule],
declarations: [AppComponent],
bootstrap: [AppComponent],
providers: [GlobalsService, CanActivateViaOAuthGuard]
})
export class AppModule {
}
現在我得到這個錯誤:
Unhandled Promise rejection: (SystemJS) Can't resolve all parameters for GlobalsService: (?).
Error: Can't resolve all parameters for GlobalsService: (?).
at CompileMetadataResolver.getDependenciesMetadata
編輯:
的UserService由user.module.ts
提供:
import {NgModule} from "@angular/core";
import {UserComponent} from "./user.component";
import {CommonModule} from "@angular/common";
import {UserService} from './user.service';
@NgModule({
providers:[UserService],
imports: [CommonModule],
declarations: [UserComponent],
exports: [UserComponent]
})
export class UserModule{}
如果我從GlobalsService
的構造函數中刪除UserService
,錯誤消失。
的UserService:
import {Injectable} from '@angular/core';
import {AuthHttp} from "../auth/authHttp.service";
import {Observable} from "rxjs";
import {User} from "./user";
import {GlobalsService} from "../globals/globals.service";
@Injectable()
export class UserService {
private url: string = this.globals.getServerUrl() + 'users';
constructor(private http: AuthHttp, private globals: GlobalsService) {
}
getUsers(): Observable<User[]> {
return this.http.get(this.url);
}
getCurrentUser(): Observable<User> {
return this.http.get(this.url + '/me');
}
}
註釋它哪裏是它應該是從獲得'UserService'? 'UserModule'?它是否正確導出?你能給更多[mcve]嗎? – jonrsharpe
@jonrsharpe我編輯了這篇文章。我希望這是你的意思? – Oudstand