Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 工厂和控制器之间有什么区别?_Angularjs_Ionic Framework_Factory - Fatal编程技术网

Angularjs 工厂和控制器之间有什么区别?

Angularjs 工厂和控制器之间有什么区别?,angularjs,ionic-framework,factory,Angularjs,Ionic Framework,Factory,我正在开发一个AngularJs应用程序。当我搜索一些控制器示例时,比如firebase Auth .factory("Auth", function($firebaseAuth) { var usersRef = new Firebase("https//<YOUR-FIREBASE-APP>.firebaseio.com/users"); return $firebaseAuth(usersRef); }) .factory

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

    .factory("Auth", function($firebaseAuth) {
         var usersRef = new Firebase("https//<YOUR-FIREBASE-APP>.firebaseio.com/users");
         return $firebaseAuth(usersRef);
     })
.factory(“Auth”,函数($firebaseAuth){
var usersRef=新Firebase(“https//.firebaseio.com/users”);
返回$firebaseAuth(usersRef);
})
这将使用工厂而不是控制器。 我把它改成了控制器,它也能工作。
我需要知道区别

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

我认为控制器是为处理特定视图而设计的,而工厂则是为了构建一些业务服务,您可以在整个应用程序中重用这些服务。因此,控制器用于在视图和业务逻辑之间建立链接。但我不确定这是否真的与ionic-framework相同。请阅读angular style guide了解更多信息。可能重复感谢@alan那么工厂和服务之间的区别是什么?@SaJed a工厂只是一个返回服务实例的函数。当您定义一个服务时,它只是被包装在一个默认工厂中,该工厂实际上会
返回新的服务(args)
,因此,当工厂必须创建并返回一个对象时,服务需要使用“new”进行实例化。