2017-03-07 94 views
0

我的home.html页面中有一个控制器作为HomeController,我想在我的about.html页面中调用相同的控制器及其内容。下面的代码是主页,它将显示用户的名字和姓氏,我想调用相同的功能,例如在关于我们页面中调用名字和姓氏。怎么做?截至目前,我只是复制整个并粘贴在about控制器只是将控制器名称从HomeController更改为AboutController。我们可以从一个html页面调用一个控制器到angularjs中的另一个html页面

(函数(){ '使用严格';

angular 
    .module('app') 
    .controller('HomeController', HomeController); 

HomeController.$inject = ['UserService', '$rootScope','$scope', '$http']; 
    function HomeController(UserService, $rootScope,$scope, $http) { 
    var vm = this; 

    vm.user = null; 
    vm.allUsers = []; 
    vm.deleteUser = deleteUser; 

    initController(); 

    function initController() { 
     loadCurrentUser(); 
     loadAllUsers(); 
    } 

    function loadCurrentUser() { 
     UserService.GetByUsername($rootScope.globals.currentUser.username) 
      .then(function (user) { 
       vm.user = user; 
      }); 
    } 

    function loadAllUsers() { 
     UserService.GetAll() 
      .then(function (users) { 
       vm.allUsers = users; 
      }); 
    } 

    function deleteUser(id) { 
     UserService.Delete(id) 
     .then(function() { 
      loadAllUsers(); 
     }); 
    } 
    $http.get('webservice'). 
     then(function(response) { 
     $scope.user_message = response.data.data; 
    }); 
} 

})();

+0

如果我正确理解你的问题,这是可能的。请详细说明你的问题。显示代码结构。 – Sangharsh

+0

您可以使用控制器继承。在一个基本控制器中具有通用功能,然后在其他控制器中,可以使用派生控制器范围启动基本范围,以便可以从视图访问基本方法。 –

+0

通过在路由器的每个状态中指定要使用它的位置,您可以使用(不呼叫)相同的控制器。 – Faly

回答

0

如果您试图对两个不同的页面使用相同的控制器,则可以使用,这可能是

但要注意的是,控制器的实例将为每个创建,如果你想有控制器之间共同的数据/方法,你正在寻找services

+0

你能告诉我任何例子吗,我已经在上面发布了我的代码。 – Shivangi

相关问题