【问题标题】:what is the diffrence between factory and controller?工厂和控制器有什么区别?
【发布时间】:2016-10-06 08:25:22
【问题描述】:

我正在开发一个 AngularJs 应用程序。当我搜索一些控制器示例时,例如 firebase Auth

    .factory("Auth", function($firebaseAuth) {
         var usersRef = new Firebase("https//<YOUR-FIREBASE-APP>.firebaseio.com/users");
         return $firebaseAuth(usersRef);
     })

这将使用工厂而不是控制器。 我已将其更改为控制器,它也可以正常工作。 我需要知道区别。

【问题讨论】:

  • 我相信控制器旨在处理特定视图,而工厂则用于构建一些您可以在整个应用程序中重用的业务服务。因此控制器可以在视图和业务逻辑之间建立联系。但我不确定它是否真的与 ionic-framework 相同。
  • 请阅读 Angular 风格指南以了解更多信息。

标签: angularjs ionic-framework factory


【解决方案1】:

这里使用工厂是因为您可以为多个控制器使用相同的 Firebase 身份验证。 相反,如果您将其硬编码到特定控制器中,则必须对需要 Auth 的每个其他控制器执行相同操作。(这很糟糕)。 此外,将新功能添加为服务或工厂是陈词滥调。

【讨论】:

  • 感谢@alan 那么工厂和服务有什么区别?
  • @SaJed 工厂只是一个返回服务实例的函数。当您定义一个服务时,它只是被包装在一个默认工厂中,实际上是 return new TheService(args),因此服务需要期望用“新”实例化,而工厂必须创建并返回一个对象。
猜你喜欢
  • 2016-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 2012-05-07
  • 2018-06-03
相关资源
最近更新 更多