2016-11-03 43 views
0

直行的代碼,我會解釋沿問題是NG,如果不評估或我不理解NG-觀點顯然

我有index.html文件,這樣更多:

<body class="horizontal-menu"> 
<!-- Preloader --> 
<div id="preloader"> 
    <div id="status"><i class="fa fa-spinner fa-spin"></i></div> 
</div> 
<div ng-if="isLoading"> 
    <div id="status"><i class="fa fa-spinner fa-spin"></i></div> 
</div> 
<section> 
     <div class="contentpanel"> 
      <!-- content goes here... --> 
      <error-page ng-if="error"></error-page> 
      <div ng-view ng-if="!isLoading && !error"></div> 
     </div> 
    </div><!-- mainpanel --> 
</section> 

</body> 

我想實現我的頁面的指標,你可以看到<div id="status"><i class="fa fa-spinner fa-spin"></i></div>以及ng-if="isLoading"行。

login組件中,我將這些代碼行從login視圖更改爲register視圖。

$scope.onRegister = function() { 
    $rootScope.isLoading = true; 
    $location.path(routes.REGISTER); 
} 

我想從login視圖改變視圖register視圖時,指示燈(微調)到了。之後,在register component代碼中,我有這些行來強制關閉微調器。

function registerController($scope, $rootScope, $location, $http) { 
    $rootScope.isLoading = false; 
} 

但是,微調無限循環。

我試圖閱讀關於$viewContentLoaded,我把這些代碼行放在我的應用程序(父應用程序)以及register控制器中。

$rootScope.$on('$viewContentLoaded', function (event) { 
    $rootScope.isLoading = false; 
}) 

它仍然沒有幫助。

非常感謝提前幫助我解決這個問題。

+0

其中是$ scope.error控制器? – Sajeetharan

+0

我想''error'變量出錯了。我只是將它從'ng-if =「!isLoading &&!error」'行中刪除。問題仍然存在:( – thelonglqd

+0

我也想問一下,如果我的方法有問題嗎? – thelonglqd

回答

0

我想這個答案可能會回答你的問題,介紹如何NG-如果作品:

https://stackoverflow.com/a/19177773/5018962

簡而言之:

的ngIf指令刪除或重新創建基於一個DOM樹的一部分一種表達。如果分配給ngIf的表達式求值爲假值,則該元素將從DOM中移除,否則該元素的克隆將重新插入到DOM中。