0

私の Angular アプリケーションには、ルートに応じて変化するメイン ビューと、何があっても表示されるサイドバーがあります。私のHTMLは次のようになります。

<div id="container">
    <div id="sidebar" ng-controller="SidebarCtrl">(sidebar code)</div>
    <div ng-view id="content">Loading...</div>
</div>

そして、JavaScript は次の順序で読み込まれます。

  1. Vendor.js (Angular など)
  2. App.js (私のアプリケーション)

SidebarCtrl は App.js で定義されています。ただし、Angular が読み込まれるとすぐにng-controllerディレクティブが表示され、それをすぐにサイドバーに割り当てようとするため、app.js がキャッシュされていない限り、「引数 SidebarCtrl は関数ではありません」というエラーが発生します。別のファイルにサイドバーを配置して、Vendor.js の前にロードすることを考えていましたが、サイドバーは App.js で定義されたいくつかのサービス (つまり、私のカスタム認証サービス) に依存しています。

MyApp.controller('SidebarCtrl', 
['$scope', '$location', 'auth', function($scope, $location, auth) {
    (...)
}])

だからどちらにしても途方に暮れています。

これを設定するより良い方法があると確信しています...何かアイデアはありますか?単純な関数として定義SidebarCtrlしても、サービスにアクセスできますauthか?

ありがとう

4

1 に答える 1