2015-03-25 23 views
0

我曾嘗試以下,但使用時,我仍然得到一個閃爍NG-顯示:Angularjs - ng-cloak/ng-show elements blink伍秀引起閃爍

我使用的模板如下加載我的頂部導航:

<div data-ng-controller="userInfoCtrl"> 
    <a href="#!home">Home</a> 
<a href="#!add-item">Add Item</a> 
<a href="#!settings" data-ng-show="display">Settings</a> 

這裏是我的控制器:

// User Info 
appControllers.controller('userInfoCtrl', ['$scope', 'appAdminCheck', function ($scope, appAdminCheck) { 

    // Set value for using ng-show/ng-hide 
    appAdminCheck().then(function (isAdmin) { 
     if (isAdmin == true) { 
      $scope.display = true; 
     } 
    }); 
}]); 
+1

向我們展示更多的代碼。這是不夠的。 ng-show在哪裏? – squiroid 2015-03-25 05:00:47

+1

@squiroid那裏''Settings不 – 2015-03-25 05:13:33

+0

'display'已設置爲false最初,或使用NG-如果將解決您的問題.. – 2015-03-25 05:13:34

回答

0

我發現了這個問題。我在每個視圖中都將導航加載爲模板,因此當我更改路線時,導致ng顯示項目閃爍。將模板移入我的索引頁面可以解決問題,因爲它只加載一次。例如:

<%--Container for HTML, inclusive of AngularJS App and responsive aspects--%> 
<div class="container"> 

    <%--Include top menu--%> 
    <div data-ng-include="'../Templates/topmenu.html'"></div> 

    <%--Load Angular Views--%> 
    <div data-ng-view></div> 

    <%--Footer of page. Could be an include as well--%> 
    <hr> 
    <footer></footer> 
</div> 
3

試試這個,

使用ng-classstyle='visibility: hidden'

<a href="#!settings" style="visibility: hidden" ng-class='{forceShow: display}'>Settings</a> 

style="visibility: hidden"隱藏<a>最初然後,當display談到forceShowtrue類將增加<a>通過ng-class

和力visibility: visible$scope.display == true

<style> 
    .forceShow { 
     visibility: visible !important; 
    } 
</style> 

這裏是Demo Plunker

+0

我知道它會工作,但爲什麼需要破解?而我們提供了ng-show指令?請你詳細說明原因。 – 2015-03-25 05:14:52

+1

我與潘卡parkar同意:-P – squiroid 2015-03-25 05:15:15

+0

@ k.Toress做你能夠重現上述問題,看到這個plunkr http://plnkr.co/edit/1xbWnKEfokk5fr1I0qLk?p=preview,你怎麼能解決這個問題,而再現它.. – 2015-03-25 05:18:03