2017-03-07 91 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

相關問題