91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何監聽angularJs列表數據是否渲染完畢

發布時間:2021-07-28 09:20:39 來源:億速云 閱讀:123 作者:小新 欄目:web開發

小編給大家分享一下如何監聽angularJs列表數據是否渲染完畢,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

前端在做數據渲染的時候經常會遇到在數據渲染完畢后執行某些操作,這幾天就一直遇到在列表和表格渲染完畢后,執行點擊和選擇操作。對于angularjs處理這類問題,最好的方式就是指令 directive。

首先,定義指令:

app.directive('onfinishrenderfilters', function ($timeout) {
  return {
    restrict: 'A',
    link: function (scope, element, attr) {
      if (scope.$last === true) {  //判斷是否是最后一條數據
        $timeout(function () {
          scope.$emit('ngRepeatFinished'); //向父級scope傳送ngRepeatFinished命令
        });
      }
    }
  };
});

其次,指令定義完畢后,需要將指令添加到迭代的標簽內,此處是<tr>標簽

<div class="fixed-table-container" >
  <table class="table table-hover lamp-table">
    <thead>
    <tr>
      <th></th>
      <th  data-field="name_device-id" tabindex="0"
        ng-repeat="i in provider.geoZoneListHead track by $index" ng-hide=i.bol>
        <div class="th-inner sortable " >{{i.name}}
        </div>
        <div class="fht-cell" ></div>
      </th>

    </tr>
    </thead>
    <tbody>
    <tr ng-repeat="i in provider.geoZoneList" onfinishrenderfilters>
      <td><input data-index="0" name="btSelectItem" type="radio"
            value="{{$index}}" ng-click="selectInput($index)"></td>
      <td class="nameId0">{{$index+1}}</td>
      <td class="nameId1">{{i.geoZoneName}}</td>
      <td class="nameId2">{{i.description}}</td>
      <td class="nameId3">{{i.totalNumberOfMembers}}</td>
      <td class="nameId4">{{i.country}}</td>
      <td class="nameId5">{{i.lastUpdateDate}}</td>
    </tr>
    </tbody>
  </table>
</div>

最后,在最后一條數據渲染完畢后,brodercast是向子級scope傳送事件(命令)。而on()是監聽事件,監聽brodercast是否將事件(命令)傳送回來,若事件已傳送回來,則表示數據已經渲染完畢,就可以執行以后的其他操作了

$scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
  var btnList = $("input[name='btSelectItem']");
  btnList.eq(0).attr("checked","checked");
  $scope.provider.detalOutlet();
});

在沒有angularJs的時候一般通過監聽onLoad事件來確定頁面是否加載完成。但在使用angularJs來渲染頁面時,onLoad事件不能保證angularJs是否完成了對頁面的渲染。最常見的情況就是用angularJs來加載某個數據Table時,我們得等這個Table加載完之后對Table上的數據進行操作,但因為這個Table是由AngularJs渲染的,所以得找到某個方法獲得AngularJs渲染完畢后的事件。 這也就是為什么onload事件在angularJs框架上數據刷新不執行的一個原因,因為angularJs是數據驅動,根據數據的更新進行頁面的刷新,而整體頁面已經加載完成(數據更新,angularJs數據渲染,頁面不會重新加載),故onload事件判定頁面沒有變化,所以不予執行!

以上是“如何監聽angularJs列表數據是否渲染完畢”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高台县| 长子县| 棋牌| 鄱阳县| 蒲江县| 尼玛县| 横山县| 阿克苏市| 德江县| 富宁县| 泉州市| 柳林县| 崇左市| 嘉善县| 长寿区| 绥化市| 乐昌市| 永吉县| 县级市| 鹤岗市| 开原市| 沙洋县| 柯坪县| 本溪| 临海市| 寻乌县| 乐业县| 炉霍县| 昂仁县| 临夏县| 仪陇县| 越西县| 潜江市| 乌拉特前旗| 伽师县| 龙里县| 湖口县| 萨迦县| 东山县| 崇州市| 霍城县|