angularjs工厂最佳实践

时间:2016-04-07 12:31:29

标签: angularjs

我知道这个问题有点值得商榷,但我发现这对于希望使用angularJS做大项目的开发人员实际上有所帮助。

最佳实践(至少John Papa表示)说,将angularjs控制器封装在一致的函数中并在其中注入提供者/服务/工厂是件好事。所以基本上你最终会得到这样的东西:

myArray

如果你在一个大项目上工作,最合理的假设是你希望尽可能减少冗余,所以我最终为服务器上的每一类api端点都有工厂,所以我按照服务器范围对它们进行分组

在一个复杂的屏幕中,我会使用五到六个,所以你可以想象注射开始变长。

我想要做的是拥有一个" #data"我可以注入并通过#data我想访问包含$ http调用的工厂。

我的感觉是,这个#data不应该是一个包含它重定向到的工厂的所有配置的文件,但更像是一个提供者,你可以使用配置方法注册工厂,如下所示:

(function() {
    "use strict";

    angular
        .module("app.components")
        .controller("ctrl", ctrl);

    ctrl.$inject = ["$scope", "someFactory", "someOtherFactory"];

    function ctrl($scope, someFactory, someOtherFactory) {
        // controller logic
    }
});

这类似于在ui-router中定义状态的方式。

有关如何实施提供商的任何想法?

1 个答案:

答案 0 :(得分:0)

我知道这可能无法解答您的问题,但Angular 2试图远离Controllers$scope

相反,当您启动项目时,您应该将其计划为功能,并从这些功能创建不同的模块。在这些模块中,您将拥有所有指令(组件),服务和服务。工厂支持整个模块。

这样您就可以将应用程序封装到较小的应用程序中。这将确保如果您的应用程序的一部分不起作用,则应用程序的其余部分将不会受到影响。

Angular可能是一个难以破解的东西,并为此获得了很多火焰。但如果你正确地规划你的项目,Angular可以成为最强大的框架之一。