Proprietatea 'loading' nu există pe tipul 'SignupPage' (TypeScript)
Salut frumoșilor de la StackOverflow!
Sunt nou în stack-ul MEAN și încă încerc să înțeleg bazele acestuia.
Încerc să fac o autentificare simplă. Acesta este codul:
import { Component } from '@angular/core';
import { NavController, LoadingController } from 'ionic-angular';
import { Auth } from '../../providers/auth';
import { HomePage } from '../home/home';
@Component({
selector: 'signup-page',
templateUrl: 'signup-page.html'
})
export class SignupPage {
role: string;
email: string;
password: string;
constructor(public navCtrl: NavController, public authService: Auth, public loadingCtrl: LoadingController) {
}
register(){
this.showLoader();
let details = {
email: this.email,
password: this.password,
role: this.role
};
this.authService.createAccount(details).then((result) => {
this.loading.dismiss();
console.log(result);
this.navCtrl.setRoot(HomePage);
}, (err) => {
this.loading.dismiss();
});
}
showLoader(){
this.loading = this.loadingCtrl.create({
content: 'Authenticating...'
});
this.loading.present();
}
}
Și aceasta este eroarea pe care o primesc:
[12:43:17] typescript: src/pages/signup-page/signup-page.ts, line: 31
Property 'loading' does not exist on type 'SignupPage'.
L30: this.authService.createAccount(details).then((result) => {
L31: this.loading.dismiss();
L32: console.log(result);
[12:43:17] typescript: src/pages/signup-page/signup-page.ts, line: 35
Property 'loading' does not exist on type 'SignupPage'.
L34: }, (err) => {
L35: this.loading.dismiss();
L36: });
[12:43:17] typescript: src/pages/signup-page/signup-page.ts, line: 42
Property 'loading' does not exist on type 'SignupPage'.
L42: this.loading = this.loadingCtrl.create({
L43: content: 'Authenticating...'
[12:43:17] typescript: src/pages/signup-page/signup-page.ts, line: 46
Property 'loading' does not exist on type 'SignupPage'.
L46: this.loading.present();
[12:43:17] transpile failed
Cineva mă poate clarifica ce îmi lipsește și ce ar trebui să studiez pentru a continua cu proiectul meu?
Răspuns #1
Încearcă asta...
export class SignupPage {
role: string;
email: string;
password: string;
loading: any;
constructor(public navCtrl: NavController, public authService: Auth, public loadingCtrl: LoadingController) {
}
....
}Răspunsul #2
Problema este în metoda ta showLoader(). Tu faci:
this.loading = this.loadingCtrl.create({
content: 'Authenticating...'
});
this.loading.present();
Acesta poate fi cod legal în JavaScript simplu, dar TypeScript se plânge pentru că nu ați definit o proprietate loading în clasa dvs. Pur și simplu definiți proprietatea astfel:
export class SignupPage {
role: string;
email: string;
password: string;
loading: LoadingController; //I'm assuming that's the correct type
constructor(public navCtrl: NavController, public authService: Auth, public loadingCtrl: LoadingController) {
}
....
}
