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

AngularJS使用ng-Cloak阻止初始化閃爍問題的方法

 更新時(shí)間:2016年11月03日 10:16:22   作者:破狼  
這篇文章主要介紹了AngularJS使用ng-Cloak阻止初始化閃爍問題的方法,結(jié)合實(shí)例形式分析了AngularJS使用ng-Cloak來解決初始化時(shí)出現(xiàn)閃爍問題的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了AngularJS使用ng-Cloak阻止初始化閃爍問題的方法。分享給大家供大家參考,具體如下:

在做angular的SPA開發(fā)時(shí),我們經(jīng)常會(huì)遇見在如Chrome這類能夠快速解析的瀏覽器上出現(xiàn)表達(dá)式({% raw %} {{ express }} {% endraw %} ),或者是模塊(div)的閃爍。對(duì)于這個(gè)問題由于JavaScript去操作DOM,都會(huì)等待DOM加載完成(DOM ready)。對(duì)于angular會(huì)在DOM ready完會(huì)才回去解析html view Template,所以對(duì)于Chrome這類快速的瀏覽器你會(huì)看見有閃爍的情況出現(xiàn)。而對(duì)于IE7,8這類解析稍慢的瀏覽器大部分情況下是不會(huì)出現(xiàn)這個(gè)問題的。

angular中為我們提供了ng-cloak來實(shí)現(xiàn)防止閃爍的方案,我們只需要在需要的地方加上ng-cloak。同時(shí)對(duì)于bing文字({% raw %}{{ express }} {% endraw %})我們也可以改為ng-bind來實(shí)現(xiàn)避免。

<div id="template1" ng-cloak>{{ 'hello' }}</div>
<div id="template2" ng-cloak class="ng-cloak">{% raw %} {{ 'hello IE7' }} {% endraw %} </div>
<div id="template2" ng-bing="'hello IE7'"></div>

angular將ng-cloak實(shí)現(xiàn)為一個(gè)directive,并會(huì)在初始化的時(shí)候在DOM的heade增加一行css代碼,如下:

復(fù)制代碼 代碼如下:
@charset "UTF-8";[ng\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\:form{display:block;}.ng-animate-start{clip:rect(0,auto,auto,0);-ms-zoom:1.0001;}.ng-animate-active{clip:rect(-1px,auto,auto,0);-ms-zoom:1;}

從上面我們可以看見angular將帶有ng-clock的的元素設(shè)置為display:none,隱藏掉,在等到angular解析到帶有ng-clock的節(jié)點(diǎn)時(shí)候,會(huì)把a(bǔ)ttribute和class同時(shí)remove掉,這樣就可以實(shí)現(xiàn)防止節(jié)點(diǎn)的閃爍。

var ngCloakDirective = ngDirective({
   compile: function(element, attr) {
    attr.$set('ngCloak', undefined);
    element.removeClass('ng-cloak');
   }
});

在angular-bootstrap.js中會(huì)看見這樣的代碼去增加前面所說的css:

復(fù)制代碼 代碼如下:
document.write('<link rel="stylesheet" type="text/css" href="' + serverPath + '../css/angular.css"/>');

好像閃爍的問題好像已經(jīng)能夠被我解決了,恩是否是這樣的,理論也改如此,但是現(xiàn)實(shí)是殘酷的,我們的感性認(rèn)識(shí)經(jīng)常會(huì)被現(xiàn)實(shí)一記重重的耳光,我們才能很更深入全面的思考,如果瀏覽器的速度比angular在head中加入css的速度還快呢?我在給公司的一個(gè)項(xiàng)目組解決這個(gè)閃爍的問題的時(shí)候就遇見了這個(gè)問題。怎么辦呢?那我們只能使出我們必殺技,自己把css加入我們的css文件引入heade,啟動(dòng)加載,ok這樣就可以完美解決了。(如果你也遇見了加了ng-cloak還不起作用的話,那么試試直接引入css文件吧)

到這里關(guān)于ng-cloak的原理和解決方案已經(jīng)完成。

希望本文所述對(duì)大家AngularJS程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • AngularJS上拉加載問題解決方法

    AngularJS上拉加載問題解決方法

    這篇文章主要介紹了AngularJS上拉加載問題解決方法的相關(guān)資料,該問題在項(xiàng)目中一直存在,小編給大家分享解決辦法,需要的朋友可以參考下
    2016-05-05
  • angularjs 的數(shù)據(jù)綁定實(shí)現(xiàn)原理

    angularjs 的數(shù)據(jù)綁定實(shí)現(xiàn)原理

    本篇文章主要介紹了angularjs 的數(shù)據(jù)綁定實(shí)現(xiàn)原理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • AngularJS學(xué)習(xí)筆記之TodoMVC的分析

    AngularJS學(xué)習(xí)筆記之TodoMVC的分析

    這篇文章主要介紹了AngularJS學(xué)習(xí)筆記之TodoMVC的分析的相關(guān)資料,需要的朋友可以參考下
    2015-02-02
  • 詳解如何在Angular中引入Mock.js

    詳解如何在Angular中引入Mock.js

    這篇文章主要為大家介紹了詳解如何在Angular中引入Mock.js實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 詳解Angularjs 如何自定義Img的ng-load 事件

    詳解Angularjs 如何自定義Img的ng-load 事件

    本篇文章主要介紹了詳解Angularjs 如何自定義Img的ng-load 事件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • Angular4的輸入屬性與輸出屬性實(shí)例詳解

    Angular4的輸入屬性與輸出屬性實(shí)例詳解

    這篇文章主要介紹了Angular4的輸入屬性與輸出屬性,結(jié)合實(shí)例形式詳細(xì)分析了Angular4輸入屬性與輸出屬性的概念、功能及相關(guān)使用技巧,需要的朋友可以參考下
    2017-11-11
  • 詳解如何將angular-ui的圖片輪播組件封裝成一個(gè)指令

    詳解如何將angular-ui的圖片輪播組件封裝成一個(gè)指令

    本篇文章主要介紹了如何將angular-ui的圖片輪播組件封裝成一個(gè)指令 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • 在Angular項(xiàng)目使用socket.io實(shí)現(xiàn)通信的方法

    在Angular項(xiàng)目使用socket.io實(shí)現(xiàn)通信的方法

    這篇文章主要介紹了在Angular項(xiàng)目使用socket.io實(shí)現(xiàn)通信的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • AngularJs用戶輸入動(dòng)態(tài)模板XSS攻擊示例詳解

    AngularJs用戶輸入動(dòng)態(tài)模板XSS攻擊示例詳解

    這篇文章主要給大家介紹了關(guān)于AngularJs用戶輸入動(dòng)態(tài)模板XSS攻擊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用angularjs具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • 使用AngularJS對(duì)表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法

    使用AngularJS對(duì)表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法

    AngularJS是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。下面通過本文給大家分享使用AngularJS對(duì)表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法,需要的的朋友參考下吧
    2017-07-07

最新評(píng)論

沧州市| 阳春市| 翁源县| 汤原县| 金塔县| 修水县| 米林县| 瓦房店市| 射阳县| 鄂伦春自治旗| 都江堰市| 雷山县| 什邡市| 双鸭山市| 镇江市| 长顺县| 吴忠市| 沙湾县| 长春市| 龙岩市| 定边县| 岳西县| 百色市| 桐城市| 土默特右旗| 外汇| 山阴县| 石城县| 偏关县| 竹山县| 鞍山市| 昌平区| 锦屏县| 郓城县| 怀仁县| 寿光市| 南宫市| 穆棱市| 四会市| 称多县| 明光市|