【发布时间】:2016-09-07 13:14:39
【问题描述】:
我正在我的基本 html 页面上加载一个名为 userFromServer 的模块。我想将它注入主应用程序模块和混合面板模块。但是,如果我尝试将userFromServer 注入analytics.mixpanel(angular mixpanel),就会出现注入错误。这是循环依赖错误还是我遗漏了什么? userFromServer 应该对所有模块都可用吗?如何将userFromServer 注入两个模块?
var app = angular.module('App', ['userFromServer', 'analytics.mixpanel'])
// main app with currentUser injectable
var mixp = angular.module('analytics.mixpanel', ['userFromServer'])
mixp.config(['$mixpanelProvider', 'currentUser', function($mixpanelProvider, currentUser) {
// use currentUser here
}]);
userFromServer 模块
<body ng-app="App" ng-cloak>
<base href="/">
<div class="container">
<div ng-view=""></div>
</div>
<script type="text/javascript">
angular.module('userFromServer', [])
.service('currentUser', function() {
<% if logged_in %>
this.name = '<%= @User.name %>';
this.first_name = '<%= @User.first_name %>';
this.id = '<%= @User.id %>';
this.uuid = '<%= @User.profile.uuid %>';
<% end %>
})
</script>
</body>
堆栈跟踪是:
Failed to instantiate module App due to:
Failed to instantiate module analytics.mixpanel due to:
Unknown provider: currentUser
【问题讨论】:
-
您遇到的错误是什么?还请包括 userFromServer 模型定义。
-
请提供完整的错误信息(包括调用堆栈)和相关模块的代码。列出的代码不包含任何可能导致错误的内容(除了没有 userFromServer 的事实)。此外,您将注入与加载混淆了。模块正在加载,循环依赖没有问题。依赖项被注入。
-
@estus 更新了代码和堆栈跟踪
标签: angularjs