获取解析值的未知提供程序错误
Getting Unknown provider error for resolved value
我有一个简单的路由器:
.when('/login/:uuid', {
templateUrl: 'views/login.html',
controller: 'RoomLoginCtrl',
resolve: {
roomName: function($route, ServerService) {
var uuid = $route.current.params.uuid;
return ServerService.getRoomName(uuid); //returns promise
}
}
})
....
这是控制器:
(function(angular) {
angular.module('app')
.controller('RoomLoginCtrl', RoomLoginCtrl);
function RoomLoginCtrl($location, TransferService, roomName) {
var vm = this;
vm.$location = $location;
vm.TransferService = TransferService;
vm.roomName = roomName;
vm.userName = "";
}
})(angular);
我的问题是,我得到了以下错误:
Error: [$injector:unpr] Unknown provider: roomNameProvider <- roomName <- RoomLoginCtrl
奇怪的是,当我调试时,我可以看到roomName
正在获得解析的值。该应用程序稍后崩溃,没有完成其他操作(据我所知)。
为什么这东西会让人崩溃?
谢谢!
通过混合@micha和@New Dev的评论,我通过如下操作解决了问题:
添加controllerAs: 'vm'
:
.when('/login/:uuid', {
templateUrl: 'views/login.html',
controller: 'RoomLoginCtrl',
controllerAs: 'vm'
resolve: {
roomName: function($route, ServerService) {
var uuid = $route.current.params.uuid;
return ServerService.getRoomName(uuid); //returns promise
}
}
})
并且还从temolateUrl
标签中删除了ng-controller="RoomLoginCtrl as vm"
:
更改此:
<div ng-controller="RoomLoginCtrl as vm">
对此:
<div>
谢谢你的帮助!
相关文章:
- Rails第一个应用程序错误——Errno::ENOENT
- AngularJS:未知的提供程序错误
- webpack:在MacOS上很好,在linux上加载程序错误
- 获取解析值的未知提供程序错误
- React应用程序错误'未捕获的ReferenceError:React未定义'
- IE和GMap API 2包装程序错误
- 无法将节点邮件程序错误响应从节点.js发送到角度.js
- 密钥斗篷未知提供程序错误
- 谷歌浏览器扩展名$.ajax发布事件处理程序错误
- j查询动态事件处理程序错误
- 节点 JS 取消处理程序错误事件
- Chrome 扩展程序和保管箱投放保护程序错误
- 未知提供程序错误 - AngularJS 应用程序问题
- 车把自定义帮助程序错误:“options.fn 不是函数”
- 在 yeoman 中使用动画模块编译 AngularJS 应用程序会给出未知的提供程序错误
- 如何使用 JavaScript 访问 CouchDB?标准操作程序错误
- Angularjs.获取控制器的范围.未知的提供程序错误
- Kendo UI移动滚动程序错误
- Angular js:->访问解析属性时,angular引发未知提供程序错误
- 在遍历光标和更新文档时,连接因应用程序错误而关闭