Dears,
I know that question is repeated but really i tried all available solutions but still can’t solve my problem.
I have multiple components and a service I imported the service to components like signin,signup,…etc.
but i have one component that make the problem and if i removed the service injection from it application will run perfect.
the Invalid component is :
Activation.ts
import {Component,Injectable,Inject} from '@angular/core';
import {CloudAuth} from '../../shared/auth_service';
@Component({
selector: 'page-activation',
templateUrl: 'activation.html'
})
export class Activation {
constructor( @Inject(CloudAuth) public _CloudAuth:CloudAuth ){
}
}
one of worked components login.ts
import {Component} from '@angular/core';
import {NavController, NavParams, LoadingController, AlertController, AlertOptions, Platform} from 'ionic-angular';
import {FormBuilder, Validators, FormGroup} from '@angular/forms';
import {TranslateService} from "ng2-translate";
import {Facebook} from 'ionic-native';
import {CloudAuth} from '../../shared/auth_service';
@Component({
selector:'page-login',
templateUrl: 'login.html',
})
export class login {
constructor(public loading: LoadingController, public navCtrl: NavController, public params: NavParams,
public _userService: UserService, public _FormBuilder: FormBuilder, public translate: TranslateService,
public alertCtrl: AlertController , public _CloudAuth:CloudAuth) {
...........
}
...........
}
My service code is :
import {Injectable , Inject} from "@angular/core";
import { Platform } from 'ionic-angular';
import "rxjs/add/operator/map";
import { JwtHelper } from 'angular2-jwt';
import {TranslateService} from 'ng2-translate/ng2-translate';
import {Activation} from '../user/activation/activation';
import {welcomePage} from '../welcome/welcome';
import {userLogin} from '../user/user';
import {CompleteRegistration} from '../user/completeRegistration/completeRegistration';
import {HomePage} from '../home/home';
@Injectable()
export class CloudAuth {
jwtHelper: JwtHelper = new JwtHelper();
token=null;
constructor(
@Inject(TranslateService) public translate: TranslateService ,
@Inject(Platform) public platform: Platform
){
this.token = localStorage.getItem('user_token');
}
getToken(){
return this.token;
}
updateToken(newtoken){
localStorage.setItem('user_token', newtoken.toString());
this.token = newtoken;
return true;
}
isTokenExpired(){
// Check if token expired
return this.jwtHelper.isTokenExpired(this.token)
}
tokenData(){
// Return data stored in token
if(this.token=='' || this.token == null) return false;
else return this.jwtHelper.decodeToken(this.token);
}
checkCode(code){
let userData = this.tokenData();
if( userData == false) return false;
else {
if(userData.activation_code == code) return true;
else return false;
}
}
// Check if user login or not and loading the default app Language.
checkLogin():any{
console.log(this.token);
let lang = localStorage.getItem('Language');
if(!lang || lang==''|| lang === undefined ) return welcomePage;
else {
if(lang=='ar'){
this.platform.setLang('ar',true);
this.platform.setDir('rtl',true);
}
this.translate.use(lang);
let userData = this.tokenData();
if( this.token==null || this.token== '' || userData == false) return userLogin;
else {
if(userData.active == 1) {
if(!localStorage.getItem('firstRun') ){
return CompleteRegistration;
}else{
return HomePage;
}
}else {
return Activation;
}
}
}
}
}
I removed @Inject decorator but also not working.
My node and ionic information is :
Ionic Framework: 2.0.0-rc.4
Ionic Native: 2.2.11
Ionic App Scripts: 0.0.47
Angular Core: 2.2.1
Angular Compiler CLI: 2.2.1
Node: 6.7.0
OS Platform: macOS Sierra
this error dose’t appear before it happened since upgrade to Ionic RC4
hope to find a solution.
Thanks