我已经实现了模块以在需要时加载模块。所以我已经实现了获取状态和 js 文件的结构:
- 应用程序 --main(加载模块) --views --控制器 --服务(全球) --modules(自定义模块) --认证 --视图/控制器/服务 --authentification.config.js(状态列表和依赖项) --用户 --视图/控制器/服务 --users.config.js(状态列表和依赖项) --app.config.js(抽象全局状态) --global.modules.js(需要时加载的模块列表)
我的问题是:当我重新加载页面时,它会将我重定向到其他网址。所以我对它进行了调查,我发现 angular ui-router 在加载负责模块之前读取了 url。我需要延迟获取 URL,直到加载器模块完成加载。
global.modules.js
// 自定义应用模块 var CUSTOM_MODULES = [ { 名称:'用户', 自动加载:真 }, { name: '认证', 自动加载:真 } ];
身份验证.config.js
ModuleFactory.createModule({ module : 'authentification', // 模块名称 dependencies : ['WS'], // 依赖注入 状态 : [ { 名称:'用户', 网址:'/用户', 摘要:假 }, { 名称:'user.login', url: '/登录', templateUrl: 'login.html', 服务:['authCas.js', 'authWS.js', 'profile.js'], 控制器:['loginController.js'] }, { 名称:'user.forgetpassword', url: '/sendmailconfirmation', 模板网址:'忘记密码.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']
}
]
});