setRoot not working on getActiveNavs/getRootNavById
I have a method changeView()
where I check certain authentications and permissions.
Here below the method:
changeView () : void {
let navCtrl: NavController = this.app.getActiveNavs()[0];
let hasFetchedDashboardPermission: boolean = this.permissionService.hasFetchedMenuPermission(PermissionId.PAGE_HOME);
// let testNav;
console.log(this.globalService.isAuthenticated(), !hasFetchedDashboardPermission, navCtrl.getActive() !== undefined)
if(navCtrl.getActive() !== undefined){
console.log('active navCtrl', navCtrl.getActive().id)
}
if (this.globalService.isAuthenticated() && hasFetchedDashboardPermission
&& navCtrl.getActive() !== undefined && navCtrl.getActive().id !== 'home' && navCtrl.getActive().id !== 'collegekaart') {
console.log('setHome');
navCtrl.setRoot('home');
} else if (this.globalService.isAuthenticated() && !hasFetchedDashboardPermission
&& navCtrl.getActive() !== undefined && navCtrl.getActive().id !== 'login') {
this.globalService.deleteApiSecurityParams();
console.log('check1', navCtrl.isTransitioning());
let test = this.app.getActiveNavs();
test[0].setRoot('login');
this.testNav = this.app.getRootNavById('n4');
this.testNav.setRoot('login');
// this.app.getRootNav().setRoot('login');
//navCtrl.setRoot('login', null, null, () => { console.log('onDane') })
// navCtrl.setRoot('login');
}
}
As you see I tried a couple of things but all of these are not working.. I really don't know why it is not firing the setRoot method at all!!
typescript ionic3
add a comment |
I have a method changeView()
where I check certain authentications and permissions.
Here below the method:
changeView () : void {
let navCtrl: NavController = this.app.getActiveNavs()[0];
let hasFetchedDashboardPermission: boolean = this.permissionService.hasFetchedMenuPermission(PermissionId.PAGE_HOME);
// let testNav;
console.log(this.globalService.isAuthenticated(), !hasFetchedDashboardPermission, navCtrl.getActive() !== undefined)
if(navCtrl.getActive() !== undefined){
console.log('active navCtrl', navCtrl.getActive().id)
}
if (this.globalService.isAuthenticated() && hasFetchedDashboardPermission
&& navCtrl.getActive() !== undefined && navCtrl.getActive().id !== 'home' && navCtrl.getActive().id !== 'collegekaart') {
console.log('setHome');
navCtrl.setRoot('home');
} else if (this.globalService.isAuthenticated() && !hasFetchedDashboardPermission
&& navCtrl.getActive() !== undefined && navCtrl.getActive().id !== 'login') {
this.globalService.deleteApiSecurityParams();
console.log('check1', navCtrl.isTransitioning());
let test = this.app.getActiveNavs();
test[0].setRoot('login');
this.testNav = this.app.getRootNavById('n4');
this.testNav.setRoot('login');
// this.app.getRootNav().setRoot('login');
//navCtrl.setRoot('login', null, null, () => { console.log('onDane') })
// navCtrl.setRoot('login');
}
}
As you see I tried a couple of things but all of these are not working.. I really don't know why it is not firing the setRoot method at all!!
typescript ionic3
add a comment |
I have a method changeView()
where I check certain authentications and permissions.
Here below the method:
changeView () : void {
let navCtrl: NavController = this.app.getActiveNavs()[0];
let hasFetchedDashboardPermission: boolean = this.permissionService.hasFetchedMenuPermission(PermissionId.PAGE_HOME);
// let testNav;
console.log(this.globalService.isAuthenticated(), !hasFetchedDashboardPermission, navCtrl.getActive() !== undefined)
if(navCtrl.getActive() !== undefined){
console.log('active navCtrl', navCtrl.getActive().id)
}
if (this.globalService.isAuthenticated() && hasFetchedDashboardPermission
&& navCtrl.getActive() !== undefined && navCtrl.getActive().id !== 'home' && navCtrl.getActive().id !== 'collegekaart') {
console.log('setHome');
navCtrl.setRoot('home');
} else if (this.globalService.isAuthenticated() && !hasFetchedDashboardPermission
&& navCtrl.getActive() !== undefined && navCtrl.getActive().id !== 'login') {
this.globalService.deleteApiSecurityParams();
console.log('check1', navCtrl.isTransitioning());
let test = this.app.getActiveNavs();
test[0].setRoot('login');
this.testNav = this.app.getRootNavById('n4');
this.testNav.setRoot('login');
// this.app.getRootNav().setRoot('login');
//navCtrl.setRoot('login', null, null, () => { console.log('onDane') })
// navCtrl.setRoot('login');
}
}
As you see I tried a couple of things but all of these are not working.. I really don't know why it is not firing the setRoot method at all!!
typescript ionic3
I have a method changeView()
where I check certain authentications and permissions.
Here below the method:
changeView () : void {
let navCtrl: NavController = this.app.getActiveNavs()[0];
let hasFetchedDashboardPermission: boolean = this.permissionService.hasFetchedMenuPermission(PermissionId.PAGE_HOME);
// let testNav;
console.log(this.globalService.isAuthenticated(), !hasFetchedDashboardPermission, navCtrl.getActive() !== undefined)
if(navCtrl.getActive() !== undefined){
console.log('active navCtrl', navCtrl.getActive().id)
}
if (this.globalService.isAuthenticated() && hasFetchedDashboardPermission
&& navCtrl.getActive() !== undefined && navCtrl.getActive().id !== 'home' && navCtrl.getActive().id !== 'collegekaart') {
console.log('setHome');
navCtrl.setRoot('home');
} else if (this.globalService.isAuthenticated() && !hasFetchedDashboardPermission
&& navCtrl.getActive() !== undefined && navCtrl.getActive().id !== 'login') {
this.globalService.deleteApiSecurityParams();
console.log('check1', navCtrl.isTransitioning());
let test = this.app.getActiveNavs();
test[0].setRoot('login');
this.testNav = this.app.getRootNavById('n4');
this.testNav.setRoot('login');
// this.app.getRootNav().setRoot('login');
//navCtrl.setRoot('login', null, null, () => { console.log('onDane') })
// navCtrl.setRoot('login');
}
}
As you see I tried a couple of things but all of these are not working.. I really don't know why it is not firing the setRoot method at all!!
typescript ionic3
typescript ionic3
asked Nov 26 '18 at 13:14
SireiniSireini
1,40252852
1,40252852
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
What is your console output? Which log are/aren't displayed ?
Why don't you use the dependency injection with your NavController instead of retrieving it via the this.app.getActiveNavs()[0]
instruction ?
Try adding it directly in your component constructor like this :
import { NavController } from 'ionic-angular';
export class ItemDetailsPage {
constructor(navCtrl: NavController) {}
changeView () : void {
...
if(this.navCtrl.getActive() !== undefined){
console.log('active navCtrl', this.navCtrl.getActive().id)
}
...
}
}
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53481923%2fsetroot-not-working-on-getactivenavs-getrootnavbyid%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
What is your console output? Which log are/aren't displayed ?
Why don't you use the dependency injection with your NavController instead of retrieving it via the this.app.getActiveNavs()[0]
instruction ?
Try adding it directly in your component constructor like this :
import { NavController } from 'ionic-angular';
export class ItemDetailsPage {
constructor(navCtrl: NavController) {}
changeView () : void {
...
if(this.navCtrl.getActive() !== undefined){
console.log('active navCtrl', this.navCtrl.getActive().id)
}
...
}
}
add a comment |
What is your console output? Which log are/aren't displayed ?
Why don't you use the dependency injection with your NavController instead of retrieving it via the this.app.getActiveNavs()[0]
instruction ?
Try adding it directly in your component constructor like this :
import { NavController } from 'ionic-angular';
export class ItemDetailsPage {
constructor(navCtrl: NavController) {}
changeView () : void {
...
if(this.navCtrl.getActive() !== undefined){
console.log('active navCtrl', this.navCtrl.getActive().id)
}
...
}
}
add a comment |
What is your console output? Which log are/aren't displayed ?
Why don't you use the dependency injection with your NavController instead of retrieving it via the this.app.getActiveNavs()[0]
instruction ?
Try adding it directly in your component constructor like this :
import { NavController } from 'ionic-angular';
export class ItemDetailsPage {
constructor(navCtrl: NavController) {}
changeView () : void {
...
if(this.navCtrl.getActive() !== undefined){
console.log('active navCtrl', this.navCtrl.getActive().id)
}
...
}
}
What is your console output? Which log are/aren't displayed ?
Why don't you use the dependency injection with your NavController instead of retrieving it via the this.app.getActiveNavs()[0]
instruction ?
Try adding it directly in your component constructor like this :
import { NavController } from 'ionic-angular';
export class ItemDetailsPage {
constructor(navCtrl: NavController) {}
changeView () : void {
...
if(this.navCtrl.getActive() !== undefined){
console.log('active navCtrl', this.navCtrl.getActive().id)
}
...
}
}
edited Nov 26 '18 at 14:43
answered Nov 26 '18 at 14:14
rguerinrguerin
506118
506118
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53481923%2fsetroot-not-working-on-getactivenavs-getrootnavbyid%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown