angularjs - 如何解决Angular中 Controller 多参数形式?

标签 angularjs

我有大约 10 个 Controller 和 20 个服务。

每个 Controller 至少使用 5 个相同的服务和模块。例如:

app.controller('GroupsCtrl', function(
        $rootScope,
        $scope,
        service1,
        service2,
        service3,
        service4,
        service5,
        service6,
         ...
         service20

                )
        { /**/}

看起来非常丑陋和困惑。

Angular 是否提供了解决多参数问题的解决方案?例如新表单:

app.controller('GroupsCtrl', function(
            $rootScope,
            $scope,
            SomeObject, // goes here that contains other absent services

            service6,
             ...
             service20

                    )
            { /**/}

并且 SomeObject 将安装缺少的服务:

   SomeObject:[
         service1,
        service2,
        service3,
        service4,
        service5,
        ]

因此,之后我的所有 10 个 Controller 都可以继承 SomeObject 而不是每次都写入完整列表。

希望很清楚,

谢谢

最佳答案

是的,你可以。创建一个返回您想要的服务的工厂,并在 Controller 中使用该工厂来访问服务。 例如。

var myapp = angular.module('myapp', []);
myapp.service('service1', function() {
    this.test = function(){
        console.log("Inside service1 -->test");
        //alert("Inside service1 -->test")
    }

});
myapp.service('service2', function() {
    this.test = function(){
        console.log("Inside service2 -->test");
        //alert("Inside service2 -->test");
    }

});
myapp.factory('servicesFactory', function(service1,service2) {
    return {
        service1 : service1,
        service2 : service2        
        };

});


myapp.controller('Ctrl', function ($scope,servicesFactory) {
    servicesFactory.service1.test();
    servicesFactory.service2.test();

});

关于angularjs - 如何解决Angular中 Controller 多参数形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23950535/

相关文章:

javascript - 引导日期选择器今天默认使用 Angular 和 jquery 在 h4 中显示

javascript - 从具有多个父子的嵌套 Json 获取特定数据

html - Angular Material : full page tabs size

javascript - 如何将值从 json 映射到 Angular View (html)输入文本标签?

javascript - AngularJS/UI Bootstrap - 删除时淡出警报

jquery - 将 AngularJS/AngularUI 与 d3.js 和 DOM 效果结合使用

angularjs - 如何使用 Protractor 输入单个退格键?

javascript - 当对象为空时如何在 Angular 中隐藏 html

javascript - 用于分页的 AngularJS 中的限制和偏移数据结果

javascript - 如何使用 Protractor 测试选择属性中的选项项?