How to pass parameters from Login page!

oh man… all day gone cuz of one zero
:tired_face:

hi mr snikh

I get error EXCEPTION: Uncaught (in promise): TypeError: _this.globalService.set is not a function

       onLogin(form) {
         this.submitted = true;
           if (form.valid) {
             this.schoolAppUsers.login(this.login)
              .then(loginDetails => {
              this.globals.set('loginDetails', loginDetails); // save details for other pages
              if (loginDetails.role === '1') {
                return this.navCtrl.setRoot(AdminPage);
            } else {
               return this.navCtrl.setRoot(TeachersPage);
            }
       });
  }
}

Show me, please:

  1. How you include GlobalsService in your page component.
  2. How you include GlobalsService in your module app.

login ts:

       import { Component } from '@angular/core';
       import { NavController } from 'ionic-angular';
       import { SchoolAppUsers } from '../../providers/school-app-users';
       import { UserData } from '../../providers/user-data';
       import { GlobalService } from '../../providers/global-service';

       import { TeachersPage } from '../teachers/teachers';
       import { CoursesPage } from '../courses/courses';
       import { StudentsPage } from '../students/students';

       import { Storage } from '@ionic/storage';


        @Component({
         selector: 'page-login',
         templateUrl: 'login.html'
        })
            export class LoginPage {

           login: {username?: string , password?: string} = {};
           submitted = false;
           loginDetails: any;



               constructor(public navCtrl: NavController, private schoolAppUsers: SchoolAppUsers, 
               public userData: UserData, public storage: Storage, public globalService: GlobalService         ) {

                   this.globalService=globalService;
                   this.schoolAppUsers=schoolAppUsers;
                    this.userData=userData;
             } 

                  onLogin(form) {

                 this.submitted = true;
  
                     if (form.valid) {
    
                    this.schoolAppUsers.login(this.login)
                    .then(loginDetails => {
                    // this.globalService.set('loginDetails', loginDetails);

                      this.loginDetails = loginDetails;
                     
                     if (loginDetails[0].role === 1) {
                     return this.navCtrl.setRoot(CoursesPage);
                     } else if (loginDetails[0].role === 2) {
                    return this.navCtrl.setRoot(StudentsPage);
                   } else {
                   return this.navCtrl.setRoot(TeachersPage);
                 }
      
             });
            
              this.userData.login(this.login.username);
               this.userData.loginDetails(this.loginDetails);

  
   
                 }
             }
           }

module app:

             import { NgModule } from '@angular/core';
            import { IonicApp, IonicModule } from 'ionic-angular';
            import { Storage } from '@ionic/storage';

           import { MyApp } from './app.component';

          import { StudentsPage } from '../pages/students/students';
          import { TeachersPage } from '../pages/teachers/teachers';
          import { UserDetailsPage } from '../pages/user-details/user-details';
         import { LecturerDetailsPage } from '../pages/lecturer-details/lecturer-details';
         import { CoursesPage } from '../pages/courses/courses';
         import { LoginPage } from '../pages/login/login';
         import { CourseDetailsPage } from '../pages/course-details/course-details';
         import { HomePage } from '../pages/home/home';

         import { SchoolAppUsers } from '../providers/school-app-users';
         import { UserData } from '../providers/user-data';
         import { GlobalService } from '../providers/global-service';

                @NgModule({
                   declarations: [
                       MyApp,
                       StudentsPage,
                       TeachersPage,
                       UserDetailsPage,
                       LecturerDetailsPage,
                      CoursesPage,
                      CourseDetailsPage,
                      LoginPage,
                      HomePage


               ],
               imports: [
                IonicModule.forRoot(MyApp)
               ],
                bootstrap: [IonicApp],
                 entryComponents: [
                              MyApp,
                              StudentsPage,
                              TeachersPage,
                              UserDetailsPage,
                              LecturerDetailsPage,
                              CoursesPage,
                              CourseDetailsPage,
                              LoginPage,
                              HomePage


                          ],
                         providers: [SchoolAppUsers, UserData, Storage, GlobalService]
                         })
                         export class AppModule {}

I went your way but it didnt work out , then i decided if i just store it in a storage

                        this.loginDetails = loginDetails;
                       this.userData.loginDetails(this.loginDetails);

userData.ts:

                  import { Injectable } from '@angular/core';

                 import { Events } from 'ionic-angular';
                 import { Storage } from '@ionic/storage';

                   @Injectable()
                     export class UserData {
                     HAS_LOGGED_IN = 'hasLoggedIn';

                      constructor(public events: Events, public storage: Storage) {}

                       login(username) {
                         this.storage.set(this.HAS_LOGGED_IN, true);
                         this.setUsername(username);
                         this.events.publish('user:login');
                         };

                           setUsername(username) {
                            this.storage.set('username', username);
                            };

                             loginDetails(loginDetails) {
                             this.setLoginDetails(loginDetails);
                             };

                                setLoginDetails(loginDetails) {
                                this.storage.set('loginDetails', loginDetails);
                                };

                            getLoginDetails() {
                             return this.storage.get('loginDetails').then((value) => {
                           return value;
                              });
                             };

                              getUsername() {
                               return this.storage.get('username').then((value) => {
                                return value;
                                   });
                                  };

                                }

Your way with storage is better. If it work - use it.

hi mr snikh

can you check this plz

hi , m new to ionic and angular . m facing problem, ,actually i am trying to login from Api

its my component file
import { Component } from ‘@angular/core’;
import { NavController ,LoadingController,AlertController,ToastController ,NavParams} from ‘ionic-angular’;
import { HomePage1 } from ‘…/home1/home1’;
import { AuthService } from ‘…/…/providers/auth-service/auth-service’;
import { Constants } from ‘…/…/config/config’;
import { ILoginUser } from ‘…/…/interfaces/interfaces’;
import { Wrapper } from ‘…/…/providers/wrapper’;
import { Http , Headers} from ‘@angular/http’;
@Component({
selector: ‘page-home’,
templateUrl: ‘home.html’

})
export class HomePage {
role: string;

user_email: string;
user_passowrd :any;
loading: any;

data: any;

constructor(public navCtrl: NavController,public http: Http,public navParams: NavParams,private toastCtrl: ToastController, public authService: AuthService, public loadingCtrl: LoadingController,public alertCtrl: AlertController, public wrapper: Wrapper,) {
this.role = this.navParams.data.role;
}

presentAlert(error) {
let alert = this.alertCtrl.create({
title: ‘Error’,
message: error,
buttons: [‘Dismiss’]
});
alert.present();
}

doLogin()
{
this.http.get(‘http://turnkeyaccommodation.com.au/api/login_user’)
.map(res=> res.json())
.subscribe(data=>{

  this.data = data.status;
  this.data = Array.of(this.data); 
  console.log(data.status);
},
err=>{
  console.log(err);

});

}

showLoader(){
this.loading = this.loadingCtrl.create({
content: ‘Authenticating…’
});

this.loading.present();

}
presentToast(msg) {
let toast = this.toastCtrl.create({
message: msg,
duration: 3000,
position: ‘bottom’,
dismissOnPageChange: true
});

toast.onDidDismiss(() => {
  console.log('Dismissed toast');
});

toast.present();

}

//
guest()
{
this.navCtrl.setRoot(HomePage1);
}
logi()
{
this.navCtrl.setRoot(HomePage1);
}
}

HTML FILE

Welcome
to

TurnKey Accommodation

We strive for excellence in every aspect of your stay

<div class="row">			 
  <div class="col-lg-12 bottom-btn text-center">
    <a class="btn-bg" type="submit" (click)="doLogin()"  >Login</a>
    <a class="line-btn"  (click)="guest()">Continue As a Guest</a>
  </div>
</div>
plz help me for log in