これは私の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エラーが発生しますので、
- NG-コントローラは解決で使用することはできません。したがって、ng-includeは '/'ルートに問題を引き起こします。
- ルートがなく、index.htmlのすべてのビューに含まれているので、navbarの解決方法を指定する方法がわかりません。また、navbarはログインしているユーザーの名前を表示する必要があります。
EDIT1: IはhomeController
でmyPromise.$$state.value
を返すとresolve {...}
を除去することによって、醜い溶液を試みました。しかし、私はこのような$ qの約束を使うべきではないと感じています。その他の提案はありますか?
EDIT2: つまり、ng-controller = ""のためにloggedUserが不明です。説明は次のとおりです:AngularJS, resolve and unknown provider。
私はあなたが「不明者」についてのエラーが出る理由は、あなたが解決関数にサービスuserService
を注入する必要があるということだと思い
おそらく、私は少し不明でした、私はloggedUserプロバイダーが不明であることを意味しました。あなたが私の言いたいことを理解できるように私の答えを更新しました。これはng-controller = ""の結果です。 – Myone