Tabpage "tabs" not highlighting when selected

I’ve built an app based on the --tabs template, and so far everything works great. I was finished the “home” page and started to work on page2 - and noticed a weird behavior when clicking the tab “tabs” to navigate between the individual pages. The navigation happens and the destination page loads, but the current “tab” doesn’t immediately get highlighted.
I’ve not been able to detect a pattern - like maybe it’s always 1 or 2 clicks behind, or it’s just delayed and eventually happens - it seems to be completely random.
Is there something I should look for? Maybe some parameter of the TabsPage page that I forgot to set?

-Paul-

Anything inconsistent like that I tend to suspect a race condition somewhere.

Any tips for finding those? Or maybe a ham-handed workaround?

I’m about to go into the ionViewDidLoad() event and force a this.tabRef.select(x)

I can give some tips for avoiding them.

  • always declare types of return values of all functions
  • any time you call any function that returns a future (Promise/Observable), make sure one of two things is true: either the calling function returns void and everything that needs the resolved value is self-contained inside a then or subscribe in that function; or the very first word of your calling function is return
  • any time you are interacting with cordova, wrap with platform.ready().then()
  • ditto with Storage and its ready()
  • never use setTimeout()
  • if you use any libraries with callback systems, Promise-ify them and only use that interface
  • let Angular control the DOM. don’t bring in anything (like jQuery) that is going to fight with it

@PaulHoran

I have a same issue. Did you find any workaround?

Unfortunately not. Something in the bowels of the framework is “swallowing” the final DOM change that turns the currently selected tabheader to “selected” mode. If I take the framework out (it’s just a Cordova plugin), it all starts working normally again.

This isn’t really an Ionic bug, I suppose. I was just hoping someone knew where that happened inside the Ionic framework so I could force it to happen manually…

@PaulHoran which Cordova plugin did you take out to make it work?