我已经实现了模块,可以在需要时加载模块。所以我已经实现了获取状态和js文件的结构:
--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)
我的问题是: 当我重新加载页面时,它将我重定向到其他网址。所以我做了一个关于它的研究,我发现角度ui-router在加载负责模块之前读取url。我需要延迟提取URL,直到加载器模块完成加载。
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']
}
]
});