angularjs - Default child state with same url as parent -


i have app many main states, 1 of them user profile:

  $stateprovider.state('profile', {     url: '/profile/',     templateurl: 'profile/profile.html',     controller: 'profile',   }); 

but container nested pages different profile settings. it's template contains main menu , ui-view nested states. controller menu handling.

one of nested views should default url , have same url parent, there shouldn't suffixes added url, can't achieve that.

here's tried:

  $stateprovider.state('profile.details', {       url: '',       templateurl: 'profile/details.html',       controller: 'profiledetails',   }); 

this not working @ all, @ url /profile/ menu appears , empty ui-view element. second approach:

  $stateprovider.state('profile.details', {       url: '/',       templateurl: 'profile/details.html',       controller: 'profiledetails',   }); 

this matches on url /profile// (with 2 slashes @ end). @ url /profile/ there still menu , empty ui-view element.

how can achieve result? possible using angular-ui-router?

make parent state abstract. prevent going state, , force go child states only. abstract states perfect templates child ones. rid of url:

$stateprovider.state('profile', {     abstract: true,     templateurl: 'profile/profile.html',     controller: 'profile',   }); 

now child state define absolute url

$stateprovider.state('profile.details', {       url: '^profile',       templateurl: 'profile/details.html',       controller: 'profiledetails',   }); 

that should work.


Comments

Popular posts from this blog

java - Date formats difference between yyyy-MM-dd'T'HH:mm:ss and yyyy-MM-dd'T'HH:mm:ssXXX -

c# - Get rid of xmlns attribute when adding node to existing xml -