core、customer、およびadminという angularjs モジュールがあるとします。customerとadminの両方にcoreが含まれています。両方のモジュールのサイトで、コントローラー (HeaderController) を持つ同じヘッダーを使用する必要があります。ユーザーが顧客モジュールに裏打ちされたサイトにログインすると、コアモジュールのユーザー情報で定数を作成します。customerモジュール内のどこに行っても、その定数にはそこに配置したデータがあります。管理モジュールをサポートするサイトに移動するためのリンクがあり、管理者からのユーザー情報を使用してその定数にアクセスできるようにしたい(HeaderController 上)。以下に、私のコードのスニペットを示します。現在、顧客のすべてが機能していますが、管理者に移動すると、次のようになります。
エラー: [$injector:unpr] 不明なプロバイダー: currentUserProvider <- currentUser <- HeaderController
顧客用Index.cshtml
@{
ViewBag.Title = "Customer";
Layout = "~/Areas/Institutional/Views/Customer/_SiteLayout.cshtml";
}
<br />
<div>
<ng-view></ng-view>
</div>
@section Scripts {
<script type="text/javascript">
angular.module('core').constant('currentUser', @Html.Raw(Json.Encode(Model.Data)));
</script>
}
管理者用モジュール
(function () {
'use strict';
angular
.module('admin',
['core']);
})();
お客様向けモジュール
(function () {
'use strict';
angular
.module('customer',
['core']);
})();
currentUser (定数)にアクセスする必要があるコントローラー
(function() {
angular
.module('core')
.controller('HeaderController', ['$scope', '$rootScope','currentUser',
function ($scope, $rootScope, currentUser) {
$scope.currentUser = currentUser;
}
]);
})();