【发布时间】:2017-03-07 12:15:00
【问题描述】:
我的 home.html 页面中有一个控制器作为 HomeController,我想在 about.html 页面中调用相同的控制器及其内容。以下代码用于主页,它将显示用户的名字和姓氏,我想调用相同的功能,例如在关于我们页面中调用名字和姓氏。怎么做?到目前为止,我刚刚将整个内容复制并粘贴到 about 控制器中,只是将控制器名称从 HomeController 更改为 AboutController。
(函数(){ '使用严格';
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;
});
}
})();
【问题讨论】:
-
如果我正确理解您的问题,这是可能的。请详细说明您的问题。显示代码结构。
-
您可以使用控制器继承。在一个基本控制器中具有通用功能,然后在其他控制器中,您可以使用派生的控制器范围启动基本范围,以便您可以从视图中访问基本方法。
-
您可以在任何地方使用(而不是调用)同一个控制器,方法是在您要使用的路由器的每个状态中指示它。
-
我已经发布了我的代码并详细说明了我正在尝试做什么。请帮助我举任何例子,以便我正确理解结构。提前致谢。
标签: angularjs