サービスを使用して、グローバルに使用されている情報を格納しようとしています。現時点では、現在のユーザーのみが含まれている必要があります。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
EDIT:
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