我有大约 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/