首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何避免Angularjs中的大量依赖

如何避免Angularjs中的大量依赖
EN

Stack Overflow用户
提问于 2014-04-30 15:27:40
回答 2查看 6.7K关注 0票数 19

我有一个Angular应用程序。它工作得很好,但随着我的应用程序变得越来越大,我担心必须在每个控制器中注入大量的依赖项。

例如

代码语言:javascript
复制
app.controller('viewapps',[
    '$scope','Appfactory','Menu','$timeout','filterFilter','Notice', '$routeParams', 
    function($scope,Appfactory,Menu,$timeout,filterFilter,Notice,$routeParams) {
        //controller code..    
}])

我确信依赖项的列表在未来会增加。我是不是做错了什么?这是正确的方法吗?有效处理此问题的最佳方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2014-09-02 22:33:05

我一直在尝试基于控制器捆绑服务的想法。

因此,在您的示例中,您可以将您的;AppFactory、菜单、filterFilter和通知服务重构为一个服务,例如ViewAppsServices。

然后,您将使用ViewAppsServices.AppFactory.yourFunction()等服务。

在我看来,你至少可以把你的注入转移到另一个文件中,清理一下你的控制器。

我认为可读性会受到一些影响,因为另一个开发人员将不得不查看捆绑包而不是控制器本身。

这是我放在一起演示它如何工作的JSFiddle;这就是我所设想的工作方式。

代码语言:javascript
复制
.service('ViewAppsServices', ['AppFactory', 'Menu', 'filterFilter', 'Notice', 
function (AppFactory, Menu, filterFilter, Notice) {
    return {
        AppFactory: AppFactory,
        Menu: Menu,
        filterFilter: filterFilter,
        Notice: Notice
    };
} ])
票数 7
EN

Stack Overflow用户

发布于 2014-04-30 15:36:44

尝试将尽可能多的逻辑转移到服务,甚至只是让控制器方法充当“路由传递”方法。过一段时间,如果你想在其他控制器/指令中使用类似的方法,你会发现它非常有用。无论如何,7次注射在我看来并不多:)

(编辑:参见下面Matt的评论)另外,一个小贴士-在新版本的Angular中,你不必编写这个数组,只需:

代码语言:javascript
复制
app.controller('viewapps', function($scope,Appfactory,Menu, $timeout,filterFilter,Notice,$routeParams){
   //controller code..    
}])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23382109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档