无法解析AuthService的所有参数:([object],?)Angular 5.x

无法解析AuthService的所有参数:([object],?)Angular 5.x,angular,service,angular-services,angular5,angular-components,Angular,Service,Angular Services,Angular5,Angular Components,我对Angular 2-5非常陌生,这是我第一次尝试在教程之外的任何地方设置服务。我收到一条无法解析所有参数的错误消息,我无法理解需要解析哪些参数以及为什么不解析。有人能帮我吗?我将包含尽可能多的代码 auth.service.ts import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable } fro

我对Angular 2-5非常陌生,这是我第一次尝试在教程之外的任何地方设置服务。我收到一条无法解析所有参数的错误消息,我无法理解需要解析哪些参数以及为什么不解析。有人能帮我吗?我将包含尽可能多的代码

auth.service.ts

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import { ClientJs } from 'clientjs';
import { AnyoneGuard } from '../components/guards/anyone.guard';
import { Constants } from '../app.config';


@Injectable()
export class AuthService {
  constructor(private http: HttpClient, private clientJs: ClientJs) { }

  ipAddress: any;
  user: any;

  public isLoggedIn() {
    return this.user.isAuthenticated;
  }

  getIp(login) {
    const client = new this.clientJs;
    const fingerprint = client.getFingerprint();
    console.log('FINGERPRINT: ' + fingerprint);
    this.ipAddress = fingerprint;
    if (login) { return fingerprint; }
    return '&IpAddress=' + fingerprint;
  }

  clearUser() {
    this.user = {
      username: null,
      authtoken: '',
      isAuthenticated: false,
      roles: null,
      ip: null,
      opName: null,
      opId: null,
      opMode: null,
      opPartition: null
    };
  }

  public login(username: string, password: string): Observable<boolean> {
    return this.http.post<any>(Constants.API_URL + 'authservice/login',
      { username: username, password: password, IpAddress: this.getIp(true) })
      .map(results => {
        let loggedIn = false;

        if (results) {
          const authToken = results.data.authToken + this.getIp(false);
          if (authToken) {
            loggedIn = true;
          }

          this.user = {
            username: results.data.username,
            authtoken: authToken,
            isAuthenticated: loggedIn,
            roles: results.data.roles,
            ip: results.data.ip,
            opName: results.data.opName,
            opId: results.data.opId,
            opMode: results.data.opMode,
            opPartition: results.data.opPartition
          };

          console.log('authService:Login: ' + JSON.stringify(this.user));

          // store user details and jwt token in local storage to keep user logged in between page refreshes
          localStorage.setItem('currentUser', JSON.stringify(this.user));
        }

        return loggedIn;

      });
  }

  public logout(): Observable<boolean> {

    return this.http.post<any>('http://localhost:58510//api/authservice/logout', { username: this.user.username })
      .map(results => {
        console.log('authService:Logout: ' + JSON.stringify(this.user));

        // remove user from local storage to log user out
        localStorage.removeItem('currentUser');

        this.clearUser();

        return false;
      });

  }
}
app.module.ts

// Angular Imports
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { CanActivate, CanActivateChild, CanDeactivate, Routes, RouterModule } from '@angular/router';
import { ReactiveFormsModule, FormControl, FormsModule } from '@angular/forms';
import { HttpClientModule, HttpClient } from '@angular/common/http';

// Components
import { AppComponent } from './app.component';
import { LoginComponent } from './views/noauth/login/login.component';
import { DashboardComponent } from './views/dashboard/dashboard.component';
import { FooterComponent } from './components/common/footer/footer.component';
import { CardholderComponent } from './views/cardholder/cardholder.component';
import { AccesslevelComponent } from './views/accesslevel/accesslevel.component';
import { SearchComponent } from './views/search/search.component';
import { ControlComponent } from './views/control/control.component';
import { ReportComponent } from './views/report/report.component';
import { BadgeComponent } from './views/badge/badge.component';
import { EditCardholderComponent } from './views/cardholder/edit-cardholder/edit-cardholder.component';
import { EditBadgeComponent } from './views/badge/edit-badge/edit-badge.component';
import { EditAccessLevelComponent } from './views/accesslevel/edit-access-level/edit-access-level.component';
import { EditControlComponent } from './views/control/edit-control/edit-control.component';

// Services
import { AuthService } from './services/auth.service';

// Guards
import { AnyoneGuard } from './components/guards/anyone.guard';
import { LoggedInGuard } from './components/guards/logged-in.guard';
import { AdminGuard } from './components/guards/admin.guard';

// Libs
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { LoggerModule, NgxLoggerLevel } from 'ngx-logger';
import { ClientJs} from 'clientjs';

// Pipes
import { KeepHtmlPipe } from './components/pipes/keep-html.pipe';

// Routes
import { ROUTES } from './app.routes';

// Layouts
import { BasicLayoutComponent } from './components/common/layouts/basic-layout/basic-layout.component';
import { BlankLayoutComponent } from './components/common/layouts/blank-layout/blank-layout.component';
import { TopNavigationLayoutComponent } from './components/common/layouts/top-navigation-layout/top-navigation-layout.component';
import { NavigationComponent } from './components/common/navigation/navigation.component';
import { TopNavbarComponent } from './components/common/top-navbar/top-navbar.component';
import { TopNavigationNavbarComponent } from './components/common/top-navigation-navbar/top-navigation-navbar.component';

@NgModule({
  declarations: [
    AppComponent,
    LoginComponent,
    DashboardComponent,
    FooterComponent,
    CardholderComponent,
    AccesslevelComponent,
    SearchComponent,
    ControlComponent,
    ReportComponent,
    BadgeComponent,
    EditCardholderComponent,
    EditBadgeComponent,
    EditAccessLevelComponent,
    EditControlComponent,
    KeepHtmlPipe,
    BasicLayoutComponent,
    BlankLayoutComponent,
    TopNavigationLayoutComponent,
    NavigationComponent,
    TopNavbarComponent,
    TopNavigationNavbarComponent
  ],
  imports: [
    BrowserModule,
    ReactiveFormsModule,
    HttpClientModule,
    RouterModule.forRoot(ROUTES),
    NgbModule.forRoot(),
    LoggerModule.forRoot({serverLoggingUrl: '/api/logs', level: NgxLoggerLevel.DEBUG, serverLogLevel: NgxLoggerLevel.ERROR}),
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: HttpLoaderFactory,
        deps: [HttpClient]
      }
    })
  ],
  providers: [
    AuthService,
    AdminGuard,
    AnyoneGuard,
    LoggedInGuard
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http);
}
Angular无法注入ClientJs,因为它不知道如何注入

为了注入某些东西,它必须在某个地方的提供者数组中,并且可能是@Injectable

如果您想要注入它,您可以编写一个封装它的类,或者只是实例化它而不注入它

// Angular Imports
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { CanActivate, CanActivateChild, CanDeactivate, Routes, RouterModule } from '@angular/router';
import { ReactiveFormsModule, FormControl, FormsModule } from '@angular/forms';
import { HttpClientModule, HttpClient } from '@angular/common/http';

// Components
import { AppComponent } from './app.component';
import { LoginComponent } from './views/noauth/login/login.component';
import { DashboardComponent } from './views/dashboard/dashboard.component';
import { FooterComponent } from './components/common/footer/footer.component';
import { CardholderComponent } from './views/cardholder/cardholder.component';
import { AccesslevelComponent } from './views/accesslevel/accesslevel.component';
import { SearchComponent } from './views/search/search.component';
import { ControlComponent } from './views/control/control.component';
import { ReportComponent } from './views/report/report.component';
import { BadgeComponent } from './views/badge/badge.component';
import { EditCardholderComponent } from './views/cardholder/edit-cardholder/edit-cardholder.component';
import { EditBadgeComponent } from './views/badge/edit-badge/edit-badge.component';
import { EditAccessLevelComponent } from './views/accesslevel/edit-access-level/edit-access-level.component';
import { EditControlComponent } from './views/control/edit-control/edit-control.component';

// Services
import { AuthService } from './services/auth.service';

// Guards
import { AnyoneGuard } from './components/guards/anyone.guard';
import { LoggedInGuard } from './components/guards/logged-in.guard';
import { AdminGuard } from './components/guards/admin.guard';

// Libs
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { LoggerModule, NgxLoggerLevel } from 'ngx-logger';
import { ClientJs} from 'clientjs';

// Pipes
import { KeepHtmlPipe } from './components/pipes/keep-html.pipe';

// Routes
import { ROUTES } from './app.routes';

// Layouts
import { BasicLayoutComponent } from './components/common/layouts/basic-layout/basic-layout.component';
import { BlankLayoutComponent } from './components/common/layouts/blank-layout/blank-layout.component';
import { TopNavigationLayoutComponent } from './components/common/layouts/top-navigation-layout/top-navigation-layout.component';
import { NavigationComponent } from './components/common/navigation/navigation.component';
import { TopNavbarComponent } from './components/common/top-navbar/top-navbar.component';
import { TopNavigationNavbarComponent } from './components/common/top-navigation-navbar/top-navigation-navbar.component';

@NgModule({
  declarations: [
    AppComponent,
    LoginComponent,
    DashboardComponent,
    FooterComponent,
    CardholderComponent,
    AccesslevelComponent,
    SearchComponent,
    ControlComponent,
    ReportComponent,
    BadgeComponent,
    EditCardholderComponent,
    EditBadgeComponent,
    EditAccessLevelComponent,
    EditControlComponent,
    KeepHtmlPipe,
    BasicLayoutComponent,
    BlankLayoutComponent,
    TopNavigationLayoutComponent,
    NavigationComponent,
    TopNavbarComponent,
    TopNavigationNavbarComponent
  ],
  imports: [
    BrowserModule,
    ReactiveFormsModule,
    HttpClientModule,
    RouterModule.forRoot(ROUTES),
    NgbModule.forRoot(),
    LoggerModule.forRoot({serverLoggingUrl: '/api/logs', level: NgxLoggerLevel.DEBUG, serverLogLevel: NgxLoggerLevel.ERROR}),
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: HttpLoaderFactory,
        deps: [HttpClient]
      }
    })
  ],
  providers: [
    AuthService,
    AdminGuard,
    AnyoneGuard,
    LoggedInGuard
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http);
}