I was trying to upgrade to ui-router 1.0.0-rc.1 , in a gulp webpack setup . I am not able to figure out how to achieve loading states from server and registering future states for it .
What i am trying to acheive is have a landing parent state . And the states will be loaded from server which is an array of states like landing.<state-name>.
$stateProvider
.state('landing', {
url: '/',
abstract: true,
component: 'landing',
})
.state('landing.**', {
url: '/',
lazyLoad: function (transition) {
return transition.injector().get('$http').get('/getStates').then(function (result) {
var arr = [];
angular.forEach(result, function (state) {
arr.push({
name: 'landing.' + state.state_name,
url: state.url,
templateUrl: state.partial_path
});
});
return arr;
});
}
})
I can see the following in the console.
Transition #0 r0: Started -> "Transition#0( ''{} -> 'landing.**'{"remainder":"dashboard"} )"
[Violation] Long running JavaScript task took 284ms
trace.js:192 Transition #0 r0: <- Rejected "Transition#0( ''{} -> 'landing.**'{"remainder":"dashboard"} )", reason: TransitionRejection(type: 2, message: The transition has been superseded by a different transition, detail: 'landing.**'{"remainder":"dashboard"})
trace.js:150 Transition #1 r0: Started -> "Transition#1( ''{} -> 'landing.**'{"remainder":"dashboard"} )"
trace.js:199 Transition #1 r0: <- Success "Transition#1( ''{} -> 'landing.**'{"remainder":"dashboard"} )", final state: landing.**
stats.js:103 Font Awesome CDN reporting has been enabled
The docs lack clarity and so , I am kind of stuck .
Any help appreciated
https://ui-router.github.io/ng1/docs/latest/interfaces/ng1.ng1statedeclaration.html#lazyload
The future state should be replaced by a lazily loaded state of the same name. Load the
'landing'state lazily (load the future state eagerly).https://ui-router.github.io/ng1/docs/latest/interfaces/state.lazyloadresult.html
The object returned from your promise should have a
statespropertystates.json:
here's a working plunker: http://plnkr.co/edit/BMNp0lbqI6Qw2zeEAvs1?p=preview