无法解析AuthService的所有参数:([object],?)Angular 5.x
我对Angular 2-5非常陌生,这是我第一次尝试在教程之外的任何地方设置服务。我收到一条无法解析所有参数的错误消息,我无法理解需要解析哪些参数以及为什么不解析。有人能帮我吗?我将包含尽可能多的代码 auth.service.ts无法解析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
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);
}