码迷,mamicode.com
首页 > Web开发 > 详细

用AngularJS构建单页应用,根据需求加载JS文件的方法

时间:2014-08-07 15:57:40      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:angularjs   hybridapp   javascript   异步   

      我们在AngularJS中可以根据网址不同直接切换view,动态加载网页模板,但是控制模板的控制器需要先定义好才可以,不能和网页模板同时加载,这样就造成整个网站的JS都要先加载完成。

       requireJS是大家第一个想到的东西,但是体积有点大,github上就有个人用它写了Angular的动态加载controller模块,是通过js promise异步编程技术实现的,最后的解决很简单~~
首先在$routeProvider里面加resolve属性,

$routeProvider.
        when('/phones', {
               templateUrl: 'partials/phone-list.html', 
               controller: PhoneListCtrl, 
               resolve: PhoneListCtrl.resolve})


然后
function PhoneListCtrl($scope) {
  //本身不用管,该怎么弄怎么弄
}

PhoneListCtrl.resolve = {
  delay: function($q) {
    var delay = $q.defer(),
    load = function(){
        $.getScript('/js/xxxxx.js',function(){
        delay.resolve();
        });
    };
    load();
    return delay.promise;
  }
}

      有了这个技术,我们的HybridApp就可以分成静态打包在原生应用里面的部分,和放在服务器上的动态部分,方便在不升级主App的前提下增加一些临时性的页面功能。具体应用场景大家自己想吧!

用AngularJS构建单页应用,根据需求加载JS文件的方法,布布扣,bubuko.com

用AngularJS构建单页应用,根据需求加载JS文件的方法

标签:angularjs   hybridapp   javascript   异步   

原文地址:http://blog.csdn.net/offbye/article/details/38416381

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!