1

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']
        }
    ]
});

houssemdh
  • 11
  • 1

0 Answers0