I am using angular 4. when routing from one component to another component
ngOninit not invoking. i have tried different methos but no use.
Here is my code:
app-router.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { GetStartedComponent } from
'./auth/get-started/get-started.component';
import { FbregisterComponent } from
'./auth/fbregister/fbregister.component';
const routes: Routes = [
{ path: 'GetStarted', component: GetStartedComponent, pathMatch:
'full' },
{ path: 'Fbregister', component: FbregisterComponent, pathMatch:
'full'}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
getstarted.component.ts:
Here i am using facebook api
onfacebooklogin(httpobj,navobj,navthis){
FB.Event.subscribe('auth.statusChange', (response => {
if (response.status === 'connected') {
FB.login(function () {
let accessToken = response.authResponse.accessToken;
FB.api('/me', 'get', { access_token: accessToken, fields:
'id,name,gender,email,first_name,last_name' }, function(response) {
sessionStorage.setItem('fbAccessToken',accessToken);
if (true) {
console.log('You are now logged in.');
AWS.config.update({
region: CognitoUtil._REGION,
credentials: new
AWS.CognitoIdentityCredentials({
IdentityPoolId:
CognitoUtil._IDENTITY_POOL_ID,
Logins: {
'graph.facebook.com': accessToken,
},
})
});
console.log("accesstoken", accessToken);
navthis.zone.run(() => {
httpobj.get('/api.json' + response.id)
.map( res => {
if (res) {
if (res.status === 200) {
sessionStorage.setItem('faceBookLoginValid',accessToken);
navobj.navigate(['/']); // Here
i am routing the component
}
}
})
.catch(() =>{
sessionStorage.setItem('FacebookDetails',
JSON.stringify(response));
navobj.navigate(['/facebookRegistration']);
// Here i am routing the component
})
.subscribe((data) => {},
err => {});
});
} else {
//console.log('There was a problem logging you
in.');
}
});
});
} else {
console.log("not connected");
}
}));
}
fbregister.component.ts:
import { Component, OnInit, NgZone } from '@angular/core';
import { Http, Headers, Response, RequestOptions } from
"@angular/http";
import { Router, ActivatedRoute, Params, ParamMap, } from
'@angular/router';
@Component({
selector: 'app-fbregister',
templateUrl: './fbregister.component.html',
providers:[RegistrationFacebookUser1],
styleUrls: ['./fbregister.component.css'],
})
export class FbregisterComponent implements OnInit {
public name1: string;
public lname1: string;
public email1: string;
constructor(public http:Http, private sharedService: SharedService,
public registrationUser:RegistrationFacebookUser1,
public registrationService:RegistrationService, public
router:Router, private zone:NgZone) {}
public ngOnInit() {
console.log("test praba");
var retrievedObject = sessionStorage.getItem('FacebookDetails');
var parsedObject = JSON.parse(retrievedObject);
console.log('tett',parsedObject);
this.email1 = parsedObject.email;
this.name1 = 'test1111';
console.log('test',this.email1);
}
}
HTML
{{name1}}<br>{{email1}}
While routing to this component ngOnint called i have tested using console
but its not printed. but when i refresh the page it will load the ngOninit.
I am using sessionstorage to retrive datas. i need to display retrived
datas to html while routing from one component to another component.
Original post stackoverflow link
: https://stackoverflow.com/q/46462531/5028339
--
You received this message because you are subscribed to the Google Groups
"Angular and AngularJS discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.