angularjs - 如何避免Angularjs中的大量依赖

标签 angularjs dependency-injection

我有一个 Angular 应用程序。它运行良好,但随着我的应用程序变得越来越大,我担心必须在每个 Controller 中注入(inject)大量依赖项。

例如

app.controller('viewapps',[
    '$scope','Appfactory','Menu','$timeout','filterFilter','Notice', '$routeParams', 
    function($scope,Appfactory,Menu,$timeout,filterFilter,Notice,$routeParams) {
        //controller code..    
}])

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

最佳答案

如果没有确切的用例,或者没有看到 Controller 中的确切代码,很难具体说明,但看​​起来您的 Controller 可能做了太多事情(或者当您稍后添加内容时可能最终会做太多事情)。您可以做三件事:

  • 将更多逻辑委托(delegate)给注入(inject)的服务。

  • 分为不同的 Controller ,因此每个 Controller 只有(大约)1 个职责。

  • 将其分成指令,每个指令都有自己的 Controller 和模板,并允许通过指令的属性和 scope 选项传入选项并给出输出。这通常是我的首选选择,因为您最终会构建一套可重用的组件,每个组件都有一个迷你 API。

    这样使用指令很好,至少在我看来是这样。它们不仅仅用于处理原始 Javascript 事件或直接访问 DOM。

关于angularjs - 如何避免Angularjs中的大量依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23382109/

相关文章:

javascript - Bootstrap : Center a container-fluid vertically

java - Gson 反序列化期间使用 Dagger 进行依赖注入(inject)

c# - UserStore 每个 HttpRequest 的 Unity IoC 生命周期

javascript - 带数字键的非关联数组返回长度 0

javascript - ng-webworker - IE 11 错误

javascript - 第 1 行第 991 列 JSON 数据后出现意外的非空白字符

css - 无论设备宽度是 ionic 还是居中图像

android - Dagger 2注入(inject)方式

c# - 在给定复杂继承的情况下保持一致的松散耦合

c# - 将 Autofac 与 ASP.Net Core 3.1 通用主机 "Worker Service"应用程序一起使用