2016-09-10 4 views
3

現在、1つのモジュールと各タブごとに異なるコントローラを備えたangularjsウェブサイトで作業しています。問題は、次のコードブロックが完全に実行され、ユーザーがログインページにリダイレクトされてコントローラが起動するということです。 $locationを実行機能に注入されたとき

angular.module('ScheidsPortal', ['ngRoute', 'ui.grid', 'ui.grid.edit']) 
.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { 
    $routeProvider 
    .when('/', { 
     templateUrl: 'app/login/login.html', 
     controller: 'loginController' 
    }) 
    .otherwise('/'); 

    $locationProvider.html5Mode(true); 
}]) 
.run(function ($rootScope, Interface) { 

}); 

しかし:

.run(function ($rootScope, Interface, $location) { 

ルーティング機能は動作を停止し、何リダイレクションが使用されていないとコントローラがロードされていません。コントローラで$locationインスタンスを使用しても問題は発生しません。

何が欠けていますか?

+1

cosoleのエラーは何ですか? – Sajeetharan

+0

ログインが完全に空で、警告もエラーもありません –

+0

あなたの問題のプランナーを作成します – Sajeetharan

答えて

0

私自身の問題に対する解決策を見つけました。私はindex.htmlに、私のアプリのルートとして 'menu'という名前のコンポーネントを使用しました。

<body> 
    <menu></menu> 
</body> 

<div ng-view></div>は、メニューコンポーネントのテンプレートの一部です。 このコンポーネントはレンダリングされないことがあるので、$ routeProviderは必ずしも読み込まれませんでした。 index.htmlの驚くべき出来事に<div ng-view></div>を置くこと。

プランナーでは、コンソールログに、コントローラがロードされていることを示す「ログインコントローラ」が表示されます。 (何とかHTMLはページに表示されませんが、開発者コンソールのF12ではhtmlコードが表示されます)

関連する問題