Hello I have a abstract state App.Tabs and a nested state App.Tabs.Requests and even more nested state App.Tabs.Requests.BecomeMember
on app level i listen for stateChangeStart to check if user is a member, and if not I redirect him to App.Tabs.Requests.BecomeMember.
.state "App.Tabs.Requests.BecomeMember",
url: "/become-member"
views:
"requests-tab-view@App.Tabs":
templateUrl: "templates/static-content.html"
controller: "becomeMemberController"
.state "App.Tabs.Requests",
url: "/requests"
views:
"requests-tab-view":
templateUrl: "templates/requests.html"
controller: "requestsController"
$rootScope.$on('$stateChangeStart', (event, toState, toParams, fromState, fromParams) ->
if toState.name is "App.Tabs.Requests"
if !userService.isMember()
event.preventDefault();
$state.go("App.Tabs.Requests.BecomeMember")
)
So that works fine, but if become member It never works. Next time I click same tab, $rootScope.$on(’$stateChangeStart’) is never fired, so I always see the same become-member template. Even if I restart the app!
Looks like Tabs are caching a view when using it this way “requests-tab-view@App.Tabs”
Any ideas?