2015-03-25 3 views
0

Я попытался следующее, но я все еще получает мерцание при использовании нг-шоу: Angularjs - ng-cloak/ng-show elements blinkNg-шоу вызывает мерцание

Я использую шаблон для загрузки моего верхнего СЧА следующим образом:

<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

Покажите нам еще код. Этого недостаточно. Где нг-шоу? – squiroid

+1

@squiroid прямо там 'Settings' –

+0

'' отображает' установлен на false изначально или использует ng-if разрешит вашу проблему .. –

ответ

0

Я нашел проблему. Я загрузил навигацию в качестве шаблона в каждом представлении, поэтому, когда я менял маршруты, это вызывало мерцание в элементе ng-show. Перемещение шаблона на мою индексную страницу разрешило проблему, поскольку она загружается один раз. Пример:

<%--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-class с style='visibility: hidden',

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

style="visibility: hidden" скрывает <a> первоначально тогда, когда display приходит true класса forceShow добавит к <a> по ng-class,

и силу visibility: visible когда $scope.display == true,

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

вот Demo Plunker

+0

Я знаю, что это сработает, но почему нам нужно взломать? в то время как мы предоставили директиву ng-show? не могли бы вы объяснить причину. –

+1

Я согласен с pankaj parkar :-p – squiroid

+0

@ k.Toress вы смогли воспроизвести вышеупомянутую проблему, см. Этот plunkr http://plnkr.co/edit/1xbWnKEfokk5fr1I0qLk?p=preview, как вы могли исправить эту проблему без воспроизводя его .. –

Смежные вопросы