关于ng-cloak解决闪现问题的一点坑

angular的页面可以使用{{express}}来执行表达式,但是浏览器的加载速度太快时,页面会出现{{}}这样的闪现,网上的解决方案大都是两种,

ng-cloak和ng-bind,两种方式的具体用法这里不再详述,网上都是,这里主要写下自己碰到的坑。

 

使用ng-cloak时,如果页面上有多个元素用了ng-cloak,此时就会出现问题,当其中一个元素已经加载完毕,angular就会把所有ng-cloak去除掉,

导致其他元素展示出来,包括未执行的{{}},我们想要解决的闪现问题又出现了,所以最好的解决方法是使用ng-bind。

 

但是,我的页面上元素太多,使用{{}}的页面也多,只能考虑其他方案,千辛万苦总算找到一种解决方法$viewContentLoaded

 1 <!--CSS代码-->
 2 .my-cloak {
 3   display : none !important    
 4 }
 5 
 6 <!--HTML代码-->
 7 <div class="my-cloak">
 8 </div>
 9 
10 <!--JS代码-->
11 $scope.$watch("$viewContentLoaded", function() {
12    angular.element(".my-cloak").removeClass("my-cloak"); 
13 })

这个方法的坏处就是页面的所有元素加载完之前,页面是空白的……,所有最好的方法还是使用ng-bind。

posted @ 2017-03-16 00:11  扯扯淡搞全栈  阅读(2079)  评论(0)    收藏  举报