获取解析值的未知提供程序错误

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>

感谢您的帮助!