最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AngularJS監(jiān)聽ng-repeat渲染完成的方法

 更新時間:2018年03月20日 16:28:11   作者:Harpsichord1207  
這篇文章主要介紹了AngularJS監(jiān)聽ng-repeat渲染完成的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

某個項目,我的網(wǎng)頁中有一個列表<ul>元素,樣式如下:

實際上它是通過Angular的ng-repeat形成的,html中的代碼是:

<li ng-repeat="for list in lists()" id="{{ list.id }}">{{ list.name }}</li>

圖中下方的新建清單button,點擊之后就往lists數(shù)組中push了一個新的list對象,此時頁面會自動渲染,也對應(yīng)增加一個<li>,如下:

注意MyList1一直是active狀態(tài)的(class="active"),我的需求是新增list后,把新增的list設(shè)置為active,即在新增后就變成下面這種樣式:

剛開始我嘗試在button對應(yīng)的函數(shù)中,往lists數(shù)組中push了新的list對象后,使用document.getElementById獲取到新增的<li>對象,然后為其添加一個class="active",結(jié)果發(fā)現(xiàn)獲取到的DOM對象為null,經(jīng)過搜索發(fā)現(xiàn)原因是:往lists數(shù)組push對象后,數(shù)組發(fā)生改變,所有的<li>都會重新渲染,在push完成之后馬上去找新增的DOM對象,DOM還沒渲染好,因此是獲取不到的。解法是:使用AngularJS的指令去監(jiān)聽ng-repeat是否渲染完成,在渲染完成后,再去取新增的<li>對象,這個網(wǎng)上有很多相關(guān)的內(nèi)容了,代碼如下:

myapp.directive('repeatFinish', function ($timeout) {
  return {
    restrict: "C",
    link: function (scope, element, attr) {
      if(scope.$last === true){
        $timeout(function () {
          scope.change_list(element[0]);
        }, 10);
      }
    }
  }
});

上述代碼建立了一個名為repeatFinish的指令,restrict: "C"表示指令放在DOMclass中(駝峰形式,即class="repeat-finish"),scope.$last === true表示已經(jīng)渲染到了最后一個對象,此時執(zhí)行change_list函數(shù)(定義在控制器中,功能是把當(dāng)前active的對象取消active,然后設(shè)置傳入的DOM對象為active),element[0]可以直接取到當(dāng)前渲染的DOM元素。注意我使用了$timeout,10ms后執(zhí)行change_list,我發(fā)現(xiàn)直接使用change_list還是會找不到DOM,原因不明,期待大神解答。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Angular實現(xiàn)的table表格排序功能完整示例

    Angular實現(xiàn)的table表格排序功能完整示例

    這篇文章主要介紹了Angular實現(xiàn)的table表格排序功能,結(jié)合完整實例形式分析了AngularJS表格排序所涉及的事件響應(yīng)、元素遍歷、屬性修改等相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • 使用RxJS更優(yōu)雅地進行定時請求詳析

    使用RxJS更優(yōu)雅地進行定時請求詳析

    這篇文章主要給大家介紹了關(guān)于如何使用RxJS更優(yōu)雅地進行定時請求的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用RxJS具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Angularjs制作簡單的路由功能demo

    Angularjs制作簡單的路由功能demo

    這篇文章主要介紹了Angularjs制作簡單的路由功能demo,剛剛開始學(xué)習(xí)Angularjs,做的不好,還請見諒。
    2015-04-04
  • AngularJS基礎(chǔ) ng-href 指令用法

    AngularJS基礎(chǔ) ng-href 指令用法

    本文主要介紹AngularJS ng-href 指令,這里對ng-href 基礎(chǔ)資料進行詳細介紹,并附代碼實例,有興趣的小伙伴可以參考下
    2016-08-08
  • 簡介AngularJS的HTML DOM支持情況

    簡介AngularJS的HTML DOM支持情況

    這篇文章主要介紹了AngularJS的HTML DOM支持情況,包括ng-hide和ng-click指令的使用,需要的朋友可以參考下
    2015-06-06
  • 淺談angularJS中的事件

    淺談angularJS中的事件

    下面小編就為大家?guī)硪黄獪\談angularJS中的事件。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 詳解Angular路由 ng-route和ui-router的區(qū)別

    詳解Angular路由 ng-route和ui-router的區(qū)別

    這篇文章主要介紹了詳解Angular路由 ng-route和ui-router的區(qū)別,分別介紹了兩種路由的用法和區(qū)別,有興趣的可以了解一下
    2017-05-05
  • Angular4學(xué)習(xí)筆記之新建項目的方法

    Angular4學(xué)習(xí)筆記之新建項目的方法

    本篇文章主要介紹了Angular4學(xué)習(xí)筆記之新建項目的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Angular 4.x 動態(tài)創(chuàng)建表單實例

    Angular 4.x 動態(tài)創(chuàng)建表單實例

    本篇文章主要介紹了Angular 4.x 動態(tài)創(chuàng)建表單實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 詳解基于Angular4+ server render(服務(wù)端渲染)開發(fā)教程

    詳解基于Angular4+ server render(服務(wù)端渲染)開發(fā)教程

    本篇文章主要介紹了詳解基于Angular4+ server render(服務(wù)端渲染)開發(fā)教程 ,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08

最新評論

吉水县| 镇康县| 汝城县| 密山市| 宜良县| 会昌县| 凭祥市| 甘德县| 古田县| 沙雅县| 莲花县| 临清市| 金沙县| 都匀市| 定结县| 包头市| 巴里| 德兴市| 红原县| 房产| 策勒县| 邢台市| 兴和县| 民乐县| 集贤县| 闸北区| 泽州县| 和政县| 沙雅县| 安远县| 汝州市| 沂南县| 锡林浩特市| 瑞丽市| 株洲市| 维西| 韶关市| 清原| 红河县| 泾源县| 含山县|