我已经实现了模块以在需要时加载模块。所以我已经实现了获取状态和 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']
}
]
});