I've implemented module to load modules when it's required. So i've implemented structure to get states and js files:
--app --main (loader module) --views --controllers --services (global) --modules (custom modules) --authentification --view/controllers/services --authentification.config.js (state list and dependecies) --users --view/controllers/services --users.config.js (state list and dependecies) --app.config.js (abstract global state) --global.modules.js (modules list to load when needed)
My problem is: when i reload page, it redirect me to otherwise url. So i made an investegation about it and i found that angular ui-router read url before loading responsible module. i need to delay fetching URL until loader module has done loading.
global.modules.js
// Custom App Modules var CUSTOM_MODULES = [ { name: 'users', autoLoad: true }, { name: 'authentification', autoLoad: true } ];
authentification.config.js
ModuleFactory.createModule({ module : 'authentification', // Name of the module dependencies : ['WS'], // Dependency injection states : [ { name: 'user', url: '/user', abstract: false }, { name: 'user.login', url: '/login', templateUrl: 'login.html', services: ['authCas.js', 'authWS.js', 'profile.js'], controllers: ['loginController.js'] }, { name: 'user.forgetpassword', url: '/sendmailconfirmation', templateUrl: 'forgetpassword.html' } ] });
app.config.js
<pre>
ModuleFactory.createModule({
module : 'app', // Name of the module
isBootstrapModule : true,
dependencies : [ 'ui.router','ui.bootstrap','ui.load','ui.jq','ui.validate', 'oc.lazyLoad', 'oc.lazyload.config', 'ngDebug'],
otherwiseUrl : '/app/home',
states : [
{
name: 'app', // State Name
url: '/app', // State URL
abstract: true, // true if your state is just a layout / container
vendorModules: VENDOR_MODULES
},
{
name: 'app.home',
url: '/home',
templateUrl: 'home.html',
controllers: ['homeController.js']
}
]
});