AngularJS:通过 UI 路由器加载 js 文件
Posted
技术标签:
【中文标题】AngularJS:通过 UI 路由器加载 js 文件【英文标题】:AngularJS : Load js file through UI router 【发布时间】:2015-08-22 11:28:19 【问题描述】:我的应用程序中有 AngularJs ui 路由器。我需要根据我的状态加载js文件。
.state('root.home',
url: '/index.html',
views:
'header':
templateUrl: 'modules/header/html/header.html',
controller: 'headerController'
,
'content-area':
templateUrl: 'modules/home/html/home.html',
controller: 'homeController'
,
'footer':
templateUrl: 'modules/common/html/footer.html',
controller: 'footerController'
,
data:
displayName: 'Home',
)
headerController,homeController,footerController在home状态加载的时候有不同的js文件那个时候我们需要加载controller的js文件是否可以通过UI路由呢?
【问题讨论】:
js文件是有角度的还是无角度的? 见***.com/questions/28184616/…和***.com/questions/22627806/… 【参考方案1】:您不应该根据您的路由状态即时加载 javascript 文件,而是应该连接所有 js 文件并通过 Gulp 缩小编译的源代码。
https://www.npmjs.com/package/gulp-concat https://www.npmjs.com/package/gulp-minify
【讨论】:
【参考方案2】:ui-route 比 requirejs (ng-route) 更强大。
你可以看看她的不同之处:
What is the difference between angular-route and angular-ui-router?
http://www.amasik.com/angularjs-ngroute-vs-ui-router/
【讨论】:
【参考方案3】:我认为你需要使用像RequireJs 这样的框架 它正在根据您向用户显示的页面加载您的脚本文件
RequireJS 加载所有与 baseUrl 相关的代码。
检查一下。我认为这可能会有所帮助。
【讨论】:
以上是关于AngularJS:通过 UI 路由器加载 js 文件的主要内容,如果未能解决你的问题,请参考以下文章
AngularJS UI 路由器 - 在不重新加载状态的情况下更改 url
AngularJs 通过 ocLazyLoad 实现动态(懒)加载模块和依赖