成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何監(jiān)聽angularJs列表數(shù)據(jù)是否渲染完畢

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

為府谷等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及府谷網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、府谷網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

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

首先,定義指令:

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

其次,指令定義完畢后,需要將指令添加到迭代的標(biāo)簽內(nèi),此處是<tr>標(biāo)簽

<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>

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

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

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

以上是“如何監(jiān)聽angularJs列表數(shù)據(jù)是否渲染完畢”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

新聞標(biāo)題:如何監(jiān)聽angularJs列表數(shù)據(jù)是否渲染完畢
URL分享:http://jinyejixie.com/article36/jjhdpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、品牌網(wǎng)站建設(shè)、微信公眾號網(wǎng)站內(nèi)鏈、搜索引擎優(yōu)化網(wǎng)站改版

廣告

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

微信小程序開發(fā)
镇原县| 隆尧县| 缙云县| 远安县| 樟树市| 桑日县| 五大连池市| 吕梁市| 靖安县| 内黄县| 康定县| 隆子县| 屯门区| 青铜峡市| 聂拉木县| 沧州市| 额敏县| 沧州市| 白河县| 阿拉善盟| 云梦县| 汉寿县| 金山区| 金坛市| 琼中| 且末县| 民权县| 克什克腾旗| 满洲里市| 绥棱县| 图片| 桂阳县| 元江| 泰来县| 西昌市| 平湖市| 桑植县| 丹寨县| 丘北县| 富裕县| 九江市|