0

我创建了一个控制器,它占用了大约 10,000 行。然后我想将原始控制器分成4个控制器到每个文件中。原始控制器有一个父控制器或抽象控制器,在三个子控制器中,我在子控制器中使用父控制器,例如 $scope.$parent.value.

我在这里遇到的问题是

我如何使它像以前一样工作?

  1. 在子控制器中使用require,在父控制器中使用
  2. 我还没有尝试过,但我可以像这样推送到父控制器angular.module("app.parent").requires.push("app.child1");
  3. 将大控制器模块化成小控制器的正确技术或原则是什么?
"use strict";


angular.module("app.parent",
        [
            "ui.router",
            "ngMap",
            "ngAnimate",
            "ui.bootstrap",
        ])
    .config([
        "$stateProvider",
        function ($stateProvider) {

            //parent abstract state
            $stateProvider.state("management", {
                url: "/parent",
                template: "<div ui-view></div>",
                abstract: true
            });

            //parent state  
            $stateProvider.state("parent.management", {
                templateUrl: "/parent/parent",
                controller: "parentController",

            });

            //these three are the children controller
            $stateProvider.state("parent.management.child1", {
                url: "/child1",
                templateUrl: "/parent/child1",
                controller: "child1Controller",
            });


            $stateProvider.state("parent.management.child2", {
                url: "/child2",
                templateUrl: "/parent/child2",
                controller: "child2Controller"
            });

            $stateProvider.state("parent.management.child3", {
                url: "/child3",
                templateUrl: "/parent/child3",
                controller: "child3Controller"
            });


        }
    ])
    .controller("parentController", [$scope, function ($scope) {


    }])
    .controller("child1Controller", [$scope, function ($scope) {


    }])
    .controller("child2Controller", [$scope, function ($scope) {


    }])
    .controller("child3Controller", [$scope, function ($scope) {


    }])
    .factory("parentService",
        [
            "$http",
            function ($http) {

                var headers = {
                    'Content-Type': 'application/json'
                };

                return {
                    test: function (model) {
                        return $http({
                            method: 'GET',
                            url: 'api/test',
                            data: model,
                            headers: {
                                'Content-Type': 'application/json'
                            }
                        });
                    },

                };
            }
        ]);

angular.module("app").requires.push("app.parent");


4

0 回答 0