【问题标题】:Can we call one controller from one html page to another html page in angularjs我们可以在angularjs中将一个控制器从一个html页面调用到另一个html页面吗
【发布时间】: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


【解决方案1】:

如果您尝试对两个不同的页面使用相同的控制器,是的有可能。

但请注意,将为每个控制器创建一个实例,如果您尝试在控制器之间使用通用数据/方法,则您正在寻找services。

【讨论】:

  • 你能告诉我任何例子吗,我已经在上面发布了我的代码。
猜你喜欢
  • 2021-07-04
  • 2017-10-06
  • 1970-01-01
  • 2022-01-15
  • 2020-06-27
  • 2014-06-24
  • 2019-12-03
  • 1970-01-01
  • 2023-03-30
相关资源
最近更新 更多