【发布时间】:2018-11-07 15:15:32
【问题描述】:
当我尝试授权时,我收到此错误:
ERROR TypeError: this._http.request(...).share 不是函数
在 AuthService.request (auth.service.ts:569)
在 AuthService.post (auth.service.ts:502)
在 AuthService.signIn (auth.service.ts:166)
在 SignInComponent.signIn (sign-in.component.ts:35)
在 Object.eval [as handleEvent] (SignInComponent.html:24)
在handleEvent (core.js:13547)
在 callWithDebugContext (core.js:15056)
在 Object.debugHandleEvent [as handleEvent] (core.js:14643)
在 dispatchEvent (core.js:9962)
在评估时(core.js:10587)
我只是找不到她在哪里,请谁能帮忙。使用了两个路由和两个模块。
这里是一些文件的列表。如果你需要扔别的东西,写。虽然这里的想法是所有可能出现错误的列表。
app.module.ts:
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import { NgModule } from '@angular/core';
import { HttpModule } from '@angular/http';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { ToastModule, ToastOptions } from "ng2-toastr";
import { ToastCustomOptions } from "./shared/toast-cutom-options";
import { AppComponent } from './app.component';
import { routing } from './routings/routing.module';
import { SignInModule } from './layout/sign-in/sign-in.module';
import { LayoutModule } from './layout/layout.module';
import { User } from "./models/user.model";
import { AuthGuard } from './shared/guards/auth.guard';
import { AuthService } from './services/auth/auth.service';
import { environment } from "../environments/environment";
declare let moment: any;
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserAnimationsModule,
BrowserModule,
RouterModule,
FormsModule,
HttpModule,
SignInModule,
ReactiveFormsModule,
LayoutModule,
routing,
ToastModule.forRoot()
],
providers: [AuthService, AuthGuard, {provide: ToastOptions, useClass: ToastCustomOptions} ],
bootstrap: [AppComponent]
})
export class AppModule {
constructor(public authService: AuthService) {
moment.locale('ru');
this.authService.init({
apiPath: environment.apiUrl,
signInRedirect: 'sign_in',
signInPath: '/sign_in',
validateTokenFailedRedirect: 'sign_in',
signOutFailedValidate: true,
dataStorage: localStorage,
userDataClass: User
});
}
}
router.module.ts:
import { Routes, RouterModule } from '@angular/router';
import { ModuleWithProviders } from '@angular/core';
import { LayoutComponent} from '../layout/layout.component';
import { SignInComponent } from '../layout/sign-in/sign-in.component';
import { NotFoundComponent } from '../layout/not-found/not-found.component';
import { AuthGuard } from '../shared/guards/auth.guard';
export const routes: Routes = [
{ path: '', redirectTo: 'dashboard', pathMatch: 'full' },
{ path: 'sign_in', component: SignInComponent },
{ path: 'dashboard', component: LayoutComponent },
{ path: 'not_found', component: NotFoundComponent },
{ path: '**', component: NotFoundComponent }
];
export const routing: ModuleWithProviders = RouterModule.forRoot(routes, { useHash: true });
【问题讨论】:
-
通常,您的错误中有一个 Stacktrace,它应该会告诉您错误是在哪里引发的。您可以将其添加到您的问题中吗?
-
@Nikolaus 添加者
-
@ShashankVivek “请求”类型的参数不能分配给“字符串”类型的参数。
-
我没有使用过
share(),但是由于错误.request()没有提供share。 -
你的
rxjs版本是什么?
标签: angular