在angularjs中切换数据ng应用程序模块配置
我正在尝试将我的应用程序分为几个模块。我有一个登录模块和应用程序的其余部分。我的想法是,如果用户不首先登录,就无法访问应用程序的其余部分。为此,我使用了两个具有不同配置的angular.module,但我无法seam动态地让angular解析新的app.js并在我的webapp上使用它的配置在angularjs中切换数据ng应用程序模块配置,angularjs,angularjs-module,Angularjs,Angularjs Module,我正在尝试将我的应用程序分为几个模块。我有一个登录模块和应用程序的其余部分。我的想法是,如果用户不首先登录,就无法访问应用程序的其余部分。为此,我使用了两个具有不同配置的angular.module,但我无法seam动态地让angular解析新的app.js并在我的webapp上使用它的配置 //index.html <div data-ng-app="login" ui-view></div> //login.js .state('user.signin', {
//index.html
<div data-ng-app="login" ui-view></div>
//login.js
.state('user.signin', {
url: '/signin',
templateUrl: 'login.html'
})
.state('appUIView', {
url: '/appUIView',
templateUrl: 'appUIView.html',
resolve: {
deps: ['uiLoad',
function( uiLoad ){
return uiLoad.load( [
'js/app.js'//I try resolving the app.js so I can now use it's configuration
]);
}]
}
})
//appUIView.html
<div data-ng-app="app" ui-view></div>//uses the app defined in app.js
//app.js
$urlRouterProvider
.otherwise('/app');//when app.js is loaded if the new configuration is used the page should land on app.html
$stateProvider
.state('app', {
url: '/app',
templateUrl: 'app.html'
})
//index.html
//login.js
.state('user.sign'{
url:“/sign”,
templateUrl:'login.html'
})
.state('appUIView'{
url:“/appUIView”,
templateUrl:'appUIView.html',
决心:{
部门:['uiLoad',
功能(uiLoad){
返回uiLoad.load([
'js/app.js'//我尝试解析app.js,以便现在可以使用它的配置
]);
}]
}
})
//appUIView.html
//使用app.js中定义的应用程序
//app.js
$urlRouterProvider
。否则(“/app”)//加载app.js时,如果使用新配置,则页面应位于app.html上
$stateProvider
.state('应用程序'{
url:“/app”,
templateUrl:'app.html'
})
谢谢你的帮助 Angular中的Web应用程序通常有1个ng应用程序模块 最合理的做法是,如果你真的需要两个独立的应用程序,那就是开发两个独立的angulars应用程序。您可以将登录模块重定向到承载应用程序安全版本的页面。当然,这意味着您必须执行常规重定向,从而触发浏览器重新加载 您还可以在一个应用程序中拥有多个ng应用程序。在这种情况下,您必须使用引导在它们之间切换。然而,除非有充分的理由,否则我不会求助于此。这似乎有点像黑客
angular.bootstrap(document.getElementById('app'),['app']);
我使用一些服务器端MVC(ASP.NET MVC,但我相信你可以用任何类似的平台来实现)来为我们用于内部应用程序的一组AngularJS模块实现这一点。我只需设置一个ViewBag属性,该属性可以由MVC中的(共享)页面模板获取,例如
此ViewBag属性由我的服务器端路由设置,因此对/App1的请求将为该包提供脚本,包括相关模块定义。与/App2、/App3等相同,/App1下的任何内容都由SPA的客户端路由处理(我们使用ui路由器)
值得关注的是,它被移植到了1.3,这将支持在单个应用程序中动态加载子应用程序/路由器。我希望这意味着应用程序模块的动态加载…这是怎么回事:好吧,我不知道。我想这回答了你的问题。我编辑了我的答案。谢谢,有人能告诉我如何在我的上实现它,而不是放置ng应用程序指令吗?你可以使用angular.bootstrap(html元素,angular模块)将模块注入到元素中。因此,只要找出代码中正确的位置,就可以这样做。