嗨,我是Angularjs的新手。我正在阅读有关Angular服务的文章。我已阅读以下内容 what-is-difference-between-factory-service-and-provider和service-vs-provider-vs-factory。对我来说,似乎他们只是达到同一目标的不同方式(如果我错了,请纠正我。)现在我想知道他们都有同样的目的,哪个是想法使用并被视为最佳实践?
答案 0 :(得分:3)
听起来问题是何时使用哪个。首先,重要的是要注意它们都是提供者。从provider
开始,每个版本都是另一个更专业的版本。 factory
是provider
的专用版本。 value
和服务又是factory
的专用版本。
constant
和value
是彼此的专用版本。因为provider
位于顶部,所以可以做所有其他提供商所做的事情,你可以只使用提供商。但是你会编写很多不必要的代码。
链中的每个专业提供商,如果你可以使用它将允许你用更少的代码完成同样的事情。所以你可以说最好的做法是使用最完整的供应商来完成你想要的东西。
这是一张高级图片,显示我的意思:
以下是图片来自博客文章的链接,为您提供了其他示例:
答案 1 :(得分:2)
没有最好的做法,没有人会告诉你一个比另一个好(服务对工厂)。
如果您需要在运行时配置服务,请使用提供程序(例如,配置路由器)。
何时使用工厂或何时使用服务,它们是相同的。
Factory具有最容易理解的语法(使用显示模块模式),因此这是最常见的选择。
另一方面,服务现在更有用"因为它们使用与Angular 2服务相同的语法,所以如果您计划某天迁移,现在使用服务将有助于过渡。