2016-11-03 4 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ビューからregisterビューに変更するこれらのコード行があります。私が欲しいもの

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

registerビューへloginビューからビューを変更するとき、インジケータ(スピナー)がアップされています。その後、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に再挿入されます。

関連する問題