离子框架:3.9.2
登录页面:
import { Component, OnInit } from '@angular/core';
import { NavController } from "ionic-angular";
import { FormControl, FormGroup, Validators } from "@angular/forms";
import { AuthProvider } from "../../providers/auth/auth";
import { HomePage } from "../home/home";
@Component({
selector: 'login',
templateUrl: 'login.component.html'
})
export class LoginPage implements OnInit {
constructor(public navCtrl: NavController,
public authProvider: AuthProvider) {
}
loginForm = new FormGroup({
login: new FormControl(null, [Validators.required]),
password: new FormControl(null, [Validators.required])
});
ngOnInit() {
}
login() {
this.authProvider.login(this.loginForm.value).subscribe(res => {
if (res === 200) {
this.navCtrl.setRoot(HomePage);
}
})
}
}
AuthProvider包含使用API的auth方法。它的浮动问题。有时候所有工作,但经常显示此错误。
修改的
AuthProvider代码:
@Injectable()
export class AuthProvider {
public isLoggedIn: boolean;
constructor(private httpClient: HttpClient,
private configUtilService: ConfigUtilService,
private app:App) {
console.log('Hello AuthProvider Provider');
}
get navCtrl(): NavController {
console.log(this.app.getRootNav());
return this.app.getRootNav();
}
public checkLogin(): Observable<number> {
// rest request
}
login(data: any): Observable<number> {
// rest request
}
sessionEnd(): Observable<number> {
// rest request
}
refreshSession() {
this.checkLogin().subscribe(() => {
})
}
startSessionTimer(){
this.refreshSession();
}
我删除了restAPI请求,因为它的简单httpClien请求包含来自服务器的返回登录信息
答案 0 :(得分:0)
这是您提供AuthProvider
服务的地方的问题。确保该服务在app.module
或包含LoginPage
组件声明的模块中提供。
答案 1 :(得分:0)
通过删除服务/提供商中的所有组件导入来解决问题。下次避免这个