欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

angularJS+requireJS實(shí)現(xiàn)controller及directive的按需加載示例

最近因?yàn)轫?xiàng)目的比較大,需要加載的js文件較多,為了提高首屏頁(yè)面的加載速度,需要對(duì)js文件進(jìn)行按需加載,然后網(wǎng)上參考了一些資料,自己也深入研究一番之后,實(shí)現(xiàn)了按需加載控制器js文件及指令js文件的效果;

創(chuàng)新互聯(lián)建站主營(yíng)霍州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,APP應(yīng)用開(kāi)發(fā),霍州h5重慶小程序開(kāi)發(fā)搭建,霍州網(wǎng)站營(yíng)銷(xiāo)推廣歡迎霍州等地區(qū)企業(yè)咨詢(xún)

思路如下

1、借助ui-router里面的resolve屬性來(lái)實(shí)現(xiàn)預(yù)加載

2、需要借助$controllerProvider動(dòng)態(tài)去注冊(cè)控制器,$compileProvider動(dòng)態(tài)去注冊(cè)指令

3、需要借助$q來(lái)幫助我們實(shí)現(xiàn)異步加載,具體步驟如下所示;

1、在我們定義的app(在定義app.config()的js文件內(nèi))模塊上掛載注冊(cè)控制器和指令的屬性,如下所示 

app.register = {    //注意這里的$controllerProvider是內(nèi)置注冊(cè)控制器的屬性,$compileProvider是內(nèi)置的注冊(cè)指令的屬性

    controller: $controllerProvider.register,

    directive: $compileProvider.directive

   } 

2、借助$q定義一個(gè)異步加載js文件的方法(在定義路由的js文件內(nèi))

app.loadMyJs = function(js){
        return function($rootScope, $q){
          var deffer = $q.defer(),
            deps=[];
          angular.isArray(js) ? (deps = js) : deps.push(js);
          require(deps,function(){
            $rootScope.$apply(function(){
              deffer.resolve();
            });
          });
          return deffer.promise;
        };
      }

3、借助路由里面的resolve屬性,進(jìn)行配置需要加載的控制器文件及指令文件(在定義路由的js文件內(nèi))

.state('view1',{
      url: '/view1',
      templateUrl: 'temp/partial1.html',
      controller: 'MyCtrl1',
      resolve:{
          //需要?jiǎng)討B(tài)加載的控制器及指令js文件,其它js文件以此類(lèi)推
        deps:app.loadMyJs(['./controllers/my-ctrl-1','./directives/loading'])
      }
    })

4、通過(guò)第一步先掛載在app上的屬性來(lái)進(jìn)行動(dòng)態(tài)注冊(cè)控制器or指令

//注冊(cè)控制器(對(duì)應(yīng)的控制器js文件內(nèi))
app.register.controller('MyCtrl1', function ($scope,$css,$rootScope) {
    //控制器里面的內(nèi)容
    
  });

//注冊(cè)指令(對(duì)應(yīng)的指令js文件內(nèi))

app.register.directive("loading",function (){

    return {
      restrict: "AE",
      replace: true,
      template: "<div class='mask' ng-show='isLoading'><span>loading</span></div>"
      }
    });  

如果有服務(wù)or過(guò)濾器需要按需加載也是類(lèi)似的方法,另外如果是公共的服務(wù),指令or過(guò)濾器等不需要進(jìn)行按需加載的文件就可以使用普通的angular.module()的方式來(lái)定義即可;

最后這只是實(shí)現(xiàn)按需加載js文件中的一種思路,以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

網(wǎng)站標(biāo)題:angularJS+requireJS實(shí)現(xiàn)controller及directive的按需加載示例
文章路徑:http://www.aaarwkj.com/article48/gipgep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)外貿(mào)建站、商城網(wǎng)站、企業(yè)建站、微信小程序、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
国产精品久久久久久老熟女| 日韩欧美一区二区福利视频| 加勒比久草免费在线观看| 午夜一区二区三区精品| 亚洲乱人伦一区二区三区| 国产一区精品在线免费看| 国产精品极品网站91青青| 日韩欧美精品另类在线| 四虎海外免费永久地址| 国产婷婷成人久久av免费高清| 日韩精品一区二区三区四区在线视频| 日本免费熟女一区二区| 亚洲福利区一区二区三区| 日韩精品毛片一区到三区| 久久久国产一区二区三区| 秋霞日韩欧美一区二区三区| 五月婷婷色丁香综合激情| 在线视频天堂亚洲天堂| 亚洲中文永久免费视频| 日本东京热二三四区不卡免费的| 超碰av之男人的天堂| 日本熟熟妇丰满人妻啪啪| 国产国产精品国产自在午夜| 午夜两性做爰免费视频| 天天操夜夜操夜夜操精品| 免费毛片一区二区三区四区| 九九热这里面只有精品| 日韩av天堂免费网站| 成人性生交大片免费看多人| 人妻少妇偷人精品免费看| 天天干夜夜泡天天操| 亚洲色图视频免费观看| 少妇欧美日韩精品在线观看 | 亚洲av偷拍一区二区三区不卡| 成人黄色暖暖韩日视频| 蜜桃av网站在线播放| 91人妻这里只有精品| 日本在线有码中文视频| 中文字幕国产精品经典三级 | 欧美aⅴ一区二区三区| 欧美三级伦理片免费观看|