未知的提供商:userProvider为现有的约曼AngularFire用户服务
Unknown provider: userProvider for existing Yeoman AngularFire user service
我在向AngularFire应用的控制器中注入服务时遇到了一些麻烦。
这是我试图将user
注入的控制器(由Yeoman生成器包含):
angular.module('myYoApp')
.controller('ChatCtrl', function ($scope, user, Ref, $firebaseArray, $timeout) { ....
产生Unknown provider
错误:
angular.js:12798 Error: [$injector:unpr] Unknown provider: userProvider <- user <- ChatCtrl
奇怪的是,它在我的自定义控制器中工作得很好,允许用户在关联的视图中访问。
angular.module('myYoApp')
.controller('myCtrl', function ($scope, user, Auth, Ref, $firebaseArray, $firebaseObject, $timeout) { ....
我不知道为什么user
服务在我的自定义控制器中是可注入的,而不是在约曼生成的ChatCtrl
中。我也看了整个项目,似乎找不到user
服务是从哪里来的。但如果我的自定义服务可以使用它,它显然在应用程序的某个地方。
我也尝试过使用$user
代替user
,但这并没有解决它。谢谢你的帮助!
好的。我设法解决了这个问题。这是routes.js
的一个疏忽。Yeoman angularfire-generator在路由中添加了内置的安全/认证功能,可以很容易地阻止它被访问,除非用户已经登录。因此,如果路由使用$routeProvider.whenAuthenticated
代替$routeProvider.when
,则user
服务只能被注入到控制器中。
常规的不安全路由是这样的:
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
安全路由是这样的:
$routeProvider
.whenAuthenticated('/chat', {
templateUrl: 'views/chat.html',
controller: 'ChatCtrl'
})
相关文章:
- 如何将新用户自动添加到AddThis服务以设置分析服务
- 在设置用户后,从 JavaScript JSON 请求中获取 Web 服务 (asmx) ASP.NET Windows
- 流星js中没有服务的用户身份验证
- 如何将用户从jquery移动窗体键入的查询SQL发布到WCF服务,并在WCF服务上运行该查询
- 当用户在命令提示符中选择任何字符串时,节点Js不为任何请求提供服务
- 如何在对用户控件执行操作后调用 Web 服务
- 从用户控件调用 Web 服务时 asp.net 页为 null
- 保留 Azure 移动服务的自定义 API 调用的用户身份验证
- Azure 网站单一登录以用户身份从 Azure Active Directory 访问 Azure 移动服务
- 使用服务跟踪用户状态并使 $watch() 正常工作
- 尝试使用 SP 服务获取用户的组列表
- 使用定位服务的移动网页-当定位服务关闭时,为用户提供设置的本地链接
- 检测用户是否已在域上启用定位服务
- 在Meteor中,如何仅在用户使用特定外部服务登录时加载javascript
- 是否有可能在javascript中离线服务用户创建的内容
- Sencha触摸azure移动服务自定义登录如何设置用户
- 加载一个Ember.JS模板一旦它被用户请求(即一个链接服务的模板已被点击)
- 未知的提供商:userProvider为现有的约曼AngularFire用户服务
- 在AngularJS中应用启动时初始化当前用户服务
- AngularJS - 错误:$injector:unpr 未知提供程序用户服务