乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      AngularJs中,如何在render完成之后,執(zhí)行Js腳本

       huhuwoo 2015-10-10

      AngularJs是Google開(kāi)源的前端JS框架。使用AngularJs, 我們能夠容易地、健壯的開(kāi)發(fā)出類(lèi)似于Gmail一樣的單頁(yè)Web應(yīng)用。AngularJs這個(gè)新興的MVC前端框架,具有以下特點(diǎn): MVC, 模塊化,自動(dòng)化雙向數(shù)據(jù)綁定,語(yǔ)義化標(biāo)簽、依賴注入等。

      AngularJs和Jquery的有什么不同?

      Jquery的主要目的是簡(jiǎn)化Js編寫(xiě),專(zhuān)注于瀏覽器跨平臺(tái),主要用來(lái)操作DOM.
      AngularJs主要關(guān)注Html數(shù)據(jù)的獲取和呈現(xiàn),以及應(yīng)對(duì)日益復(fù)雜的Web應(yīng)用需求,使得開(kāi)發(fā)龐大的Web應(yīng)用能夠更加容易。

      AngularJs呈現(xiàn)頁(yè)面的原理

      AnguarJs提供了一些對(duì)于Html進(jìn)行加強(qiáng)的語(yǔ)義標(biāo)簽(directive),這些標(biāo)簽在瀏覽器加載完頁(yè)面后被執(zhí)行。舉例來(lái)說(shuō):

      <table id=”leaderBoard”>
                <thead>
                    <tr>
                        <th>Id</th>
                        <th>Name</th>
                        <th>Salary</th>
                    </tr>
                </thead>
                <tbody>
                    <tr ng-repeat="user in users">
                        <td>{{user.Id}}</td>
                        <td>{{user.Name}}</td>
                        <td>{{user.Salary}}</td>
                    </tr>
                </tbody>
      </table>

      上面的ng-repeat,就是一個(gè)directive, 相當(dāng)于一個(gè)for循環(huán)。在頁(yè)面加載完成后,AngularJs會(huì)遍歷users數(shù)據(jù)對(duì)象,來(lái)呈現(xiàn)(render)出這個(gè)table中的內(nèi)容。

      如何實(shí)現(xiàn)在render完成之后,執(zhí)行Js腳本

      當(dāng)我們使用Jquery結(jié)合AngulraJs使用的時(shí)候,希望在render完table后,執(zhí)行一段js腳本,把JqTable應(yīng)用到該table上。在實(shí)際開(kāi)發(fā)中,會(huì)經(jīng)常碰到這樣的需求,希望能夠捕獲到AngularJs渲染完成頁(yè)面的事件。
      要達(dá)到這個(gè)目的,我們需要為當(dāng)前的app自定義directive:

      app.directive('onFinishRenderFilters', function ($timeout) {
          return {
              restrict: 'A',
              link: function(scope, element, attr) {
                  if (scope.$last === true) {
                      $timeout(function() {
                          scope.$emit('ngRepeatFinished');
                      });
                  }
              }
          };
      });

      然后,在我們需要監(jiān)控的地方,加上該directive:

      <tr ng-repeat="user in users" on-finish-render-filters>
            <td>{{user.Id}}</td>
            <td>{{user.Name}}</td>
            <td>{{user.Salary}}</td>
      </tr>

      最后,補(bǔ)充上我們需要render完成之后的Js腳本:

      $scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
                //下面是在table render完成后執(zhí)行的js
                var table = $("#leaderBoard").dataTable({
                    bJQueryUI: true,
                    "sScrollX": '100%',
                });
      });

       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多