私のhome.htmlページにHomeControllerとしてコントローラがあり、私のabout.htmlページで同じコントローラとその内容を呼び出したいとします。以下のコードは、ユーザーの名字と姓を表示するホームページ用で、about usページの名字を呼び出すのと同じ機能を呼び出すとします。どうやってするか?現在のところ、私は全体をコピーし、コントローラの名前をHomeControllerからAboutControllerに変更するだけで、コントローラについて貼り付けました。私たちは1つのコントローラを1つの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;
});
}
})();
あなたの質問が正しく理解できれば、これが可能です。あなたの質問を精緻にしてください。コード構造を表示する。 – Sangharsh
コントローラの継承を使用できます。 1つのベースコントローラーに共通の機能を持たせてから、他のコントローラーで、派生コントローラーのスコープでベーススコープを開始して、ビューからベースメソッドにアクセスできるようにします。 –
ルータを使用する各状態で、同じコントローラを使用することができます(呼び出さない)ことができます。 – Faly