2016-04-23 16 views
0

これは私のapp.jsです:解決変数

app.config(['$routeProvider', 
    function ($routeProvider) { 
     $routeProvider.when('/', { 
      templateUrl: 'partials/home.html', 
      controller: 'homeController', 
      resolve: { 
       loggedUser: getLoggedUser 
      } 
}]); 

機能getLoggedUserは()それがログインしているユーザーを見つけたときuserServiceで解決された約束を返します。私のindex.htmlでは、私は、ナビゲーションバーが含まれます:

<ng-include src="'partials/navbar.html'" ng-controller="homeController"></ng-include> // Navbar 
<div ng-view></div> // Angular views 

問題は次のとおりである:それは未知のプロバイダ "のAngularJsエラーが発生しますので、

  1. NG-コントローラは解決で使用することはできません。したがって、ng-includeは '/'ルートに問題を引き起こします。
  2. ルートがなく、index.htmlのすべてのビューに含まれているので、navbarの解決方法を指定する方法がわかりません。また、navbarはログインしているユーザーの名前を表示する必要があります。

EDIT1: IはhomeControllermyPromise.$$state.valueを返すとresolve {...}を除去することによって、醜い溶液を試みました。しかし、私はこのような$ qの約束を使うべきではないと感じています。その他の提案はありますか?

EDIT2: つまり、ng-controller = ""のためにloggedUserが不明です。説明は次のとおりです:AngularJS, resolve and unknown provider

私はあなたが「不明者」についてのエラーが出る理由は、あなたが解決関数にサービス userServiceを注入する必要があるということだと思い

答えて

0

app.config(['$routeProvider', 
function ($routeProvider) { 
    $routeProvider.when('/', { 
     templateUrl: 'partials/home.html', 
     controller: 'homeController', 
     resolve: { 
      loggedUser: function(userService) { 
       return userService.getLoggedUser(); 
      } 
     } 
}]); 
+0

おそらく、私は少し不明でした、私はloggedUserプロバイダーが不明であることを意味しました。あなたが私の言いたいことを理解できるように私の答えを更新しました。これはng-controller = ""の結果です。 – Myone

0

アプリの残りの部分からナビゲーションバーを分離することができます。

<body> 
    <div ng-controller = "navbarController as nav"> 
    <div ng-show=" userIsLoggedIn"> <!-- show navbar only if true --> 
     <!-- navbar markup--> 
    </div> 
    </div> 
    <div ng-view> <!-- display other templates here --> </div> 
</body> 

よう 使用何かがあなたはそれを私たちは、ログイン状況やユーザーの資格情報を格納するserviceを使用することができます。サービスはアプリ全体にアクセスできるため、navbarControllerのデータ(ユーザー名など)にアクセスできます。

+0

これは私が今持っているものです。問題は、他のコントローラがloggedUser変数を使用するので、routeProviderのresolveプロパティを使用したいので、$ q約束する必要がありますが、EDIT2で書いたもののためにng-controllerを解決することはできません。 – Myone

関連する問題