2016-05-26 12 views
2

角度jを持つrouteProviderを使用しています。このプロジェクトは、これまで2ページ、homeuserです。両方のページが完全に読み込まれ、コントローラーと正しく対話します。ただし、両方のページの下部にテキスト「Loading ...」が表示されます。ブロック-uiとrouteProviderでAngularJSを使用すると、ページの読み込みが完了した後、ページに「Loading ...」と表示されます

[注記:これまで「読み込み中...」というテキストがページのいずれかにのみ表示されていたと報告しました。しかし、実際には両方のページに表示されます。]

もちろん、ページに「読み込み中...」があるのはまったく受け入れられませんが、なぜそこにあるのかわかりません。ここでは、角のページに挿入したHTMLです:

<div block-ui-container="" class="block-ui-container ng-scope"> 
    <div class="block-ui-overlay"></div> 
    <div class="block-ui-message-container" aria-live="assertive" aria-atomic="true"> 
    <div class="block-ui-message ng-binding" ng-class="$_blockUiMessageClass">Loading ...</div> 
    </div> 
</div> 

は、そしてここrouteProviderCodeです:

var projectApp = angular.module("mainProjectModule", 
    ['ngRoute', 'blockUI', 'ngSanitize', 'ui.bootstrap']); 

function resolver(path) { 
    return { 
     resolver: ['$q','$rootScope', 
      function($q, $rootScope) { 
       var deferred = $q.defer(); 
       require([path], function() { 
        $rootScope.$apply(function() { 
         deferred.resolve(); 
        }); 
       }); 
       return deferred.promise; 
      } 
     ] 
    } 
} 

projectApp.config(['$routeProvider', 
    function($routeProvider) { 
     var pageNames = [ 'home', 'user' ]; 
     pageNames.forEach(function(pageName) { 
      $routeProvider 
       .when('/'+pageName, { 
        templateUrl: '/project/ajs/'+pageName+'.html', 
        resolve:  resolver(pageName+'Controller') 
       }); 
     }); 
     $routeProvider.otherwise({redirectTo: '/home'}); 
    } 
]); 

// Bootstrap Angular when DOM is ready 
angularAMD.bootstrap(projectApp); 

私のコントローラは、この文字列をクリアするために使用されなければならないシグナリングメカニズムのいくつかの種類がありますか?

答えて

1

ここに自分の質問に答えると、本当の答えよりも回避策があります。私はこの問題を解決するための正しい方法を知っていることに感謝します。

私は、angle-block-ui(https://github.com/McNull/angular-block-ui参照)を含むテンプレートでプロジェクトを開始しました。ルートプロバイダがテンプレートを読み込んだときに、このblock-uiがシーンの背後で呼び出されているようです(上記の元のルートプロバイダコードを参照)。 "Loading ..."というメッセージは実際には何もブロックしていないので、私は100%確信していませんが、テンプレートを読み込んでいるときに見られるようなデフォルトのブロックメッセージです。呼び出しは(私が知る限りは)私の制御の範囲外です。なぜなら、何が起こっているのか、なぜそれが起こっているのかは分かりません。

角度ブロック-UIのWebサイトでは、この呼び出しでブロッキングを停止することができますことを言う:

blockUI.stop(); 

私は私のコントローラにこのコードを追加し、それが効果がなかったです。

だから、この問題を回避するには、私はこのようなメッセージを非表示にするには、プロジェクトのCSSファイルにディレクティブを追加したことである:

.block-ui-overlay + .block-ui-message-container { 
    display:none; 
} 

は明らかにこれはハックですが、それは、シンプルで効果的です。

関連する問題