2017-02-23 74 views
0

我正在尝试使用离子框架来做一个简单的应用程序,以了解如何使用Firebase并操作数据。我做了一切,但我的控制台没有显示任何东西。我无法运行我的控制器。有谁知道发生了什么?无法运行控制器

我注入了一切,至少我认为我做了。我想错误是在解决。请问有人能救我吗?

这里是我的控制器:

(function(){ 
 
    'use strict'; 
 

 
    angular 
 
     .module('hsAdmin.users') 
 
     .controller('UsersCtrl', UsersCtrl); 
 

 
    UsersCtrl.$inject = ['$scope', '$state','Users' ]; 
 

 
    function UsersCtrl($scope, $state,Users){ 
 
     var vm = angular.extend(this, { 
 
      ChangeState: ChangeState, 
 
      Users:Users 
 
     }); 
 

 

 
     function ChangeState(state){ 
 
      $state.go(state); 
 
     } 
 
    }  
 
})();

这里是我的模块:

(function(){ 
 
    'use strict'; 
 

 
    angular 
 
     .module('hsAdmin.users', [ 
 
      'ionic', 
 
      'ngCordova', 
 
      'hsAdmin.users' 
 
     ]) 
 
     .config(function($stateProvider) { 
 
     
 
     $stateProvider 
 
      .state('app.users', { 
 
       url: '/users', 
 
       views: { 
 
        'menuContent': { 
 
         templateUrl: 'templates/users/users.html', 
 
         controller: 'UsersCtrl as vm' 
 
        } 
 
       } 
 
       ,resolve:{ 
 
        Users: function(UsersService) { 
 
         return UsersService.GetUsers().$loaded().then(function(user){ 
 
          return user; 
 
         }).catch(function(error){ 
 
          console.log('Error when get users: ' + error); 
 
         }) 
 
        } 
 
       } 
 
      }); 
 
     }) 
 
})();

这里是我的服务

(function(){ 
 
    'use strict'; 
 

 
    angular 
 
     .module('hsAdmin.users') 
 
     .factory('UsersService', UsersService); 
 

 
    UsersService.$inject = ['fb', '$firebaseArray', '$firebaseObject','$q','$rootScope']; 
 

 
    function UsersService(fb, $firebaseArray, $firebaseObject,$q,$rootScope){ 
 
     var service = { 
 
      GetUsers:GetUsers, 
 
      GetUsersById:GetUsersById 
 
     }; 
 
     return service; 
 

 
     function GetUsers(){ 
 
      var query = fb.child('/users'); 
 
      return $firebaseArray(query); 
 
     } 
 

 
     function GetUsersById(id){ 
 
      var query = fb.child('/users/' + id); 
 
      return $firebaseObject(query).$loaded(); 
 
     } 
 
    } 
 
})();

回答

0

你创建你的hsAdmin.users模块,然后将其注入本身,很可能是什么原因造成您的问题。试试下面的:

(function(){ 
 
    'use strict'; 
 

 
    angular 
 
     .module('hsAdmin.users', [ 
 
      'ionic', 
 
      'ngCordova', 
 
      // 'hsAdmin.users' 
 
     ]) 
 
     .config(function($stateProvider) { 
 
     
 
     $stateProvider 
 
      .state('app.users', { 
 
       url: '/users', 
 
       views: { 
 
        'menuContent': { 
 
         templateUrl: 'templates/users/users.html', 
 
         controller: 'UsersCtrl as vm' 
 
        } 
 
       } 
 
       ,resolve:{ 
 
        Users: function(UsersService) { 
 
         return UsersService.GetUsers().$loaded().then(function(user){ 
 
          return user; 
 
         }).catch(function(error){ 
 
          console.log('Error when get users: ' + error); 
 
         }) 
 
        } 
 
       } 
 
      }); 
 
     }) 
 
})();

+0

谢谢,但问题依然存在:/ –

+0

@LucasGaspar有没有在JS控制台中的任何错误讯息? –

0

试图实现在下面的方式控制。

(function() { 
 
    'use strict'; 
 

 
    var UsersCtrl = function($scope, $state, Users) { 
 

 
    var vm = angular.extend(this, { 
 
     ChangeState: ChangeState, 
 
     Users: Users 
 
    }); 
 

 

 
    function ChangeState(state) { 
 
     $state.go(state); 
 
    } 
 
    } 
 

 
    UsersCtrl.$inject = ['$scope', '$state', 'Users']; 
 

 
    angular.module('hsAdmin.users').controller('UsersCtrl', UsersCtrl); 
 

 
})();