【问题标题】:Cannot run the controller无法运行控制器
【发布时间】:2017-02-26 19:23:29
【问题描述】:

我正在尝试使用 ionic 框架制作一个简单的应用程序,以学习如何使用 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();
        }
    }
})();

【问题讨论】:

    标签: javascript firebase ionic-framework firebase-realtime-database


    【解决方案1】:

    您正在创建 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);
                            })
                        }
                    }
                });
            })  
    })();

    【讨论】:

    • 谢谢,但问题依然存在:/
    • @LucasGaspar JS控制台有错误提示吗?
    【解决方案2】:

    尝试按以下方式实现控制器。

    (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);
    
    })();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多