Angular工厂函数需要返回一些东西吗
Does an Angular factory function need to return something?
我认为这个问题的答案是"是的",但我正在阅读Angular开发人员指南(https://docs.angularjs.org/guide/services)偶然发现了这个使用factory
方法注册自定义服务的示例代码:
batchModule.factory('routeTemplateMonitor', ['$route', 'batchLog', '$rootScope',
function($route, batchLog, $rootScope) {
$rootScope.$on('$routeChangeSuccess', function() {
batchLog($route.current ? $route.current.template : null);
});
}]);
正如您所看到的,本例中的工厂函数没有返回任何内容。这有效吗?如果有效,$injector
服务将如何处理这种情况?
PS:batchLog
是本指南前面定义的另一个自定义服务。
您不必,即使在大多数情况下,也需要。如果未指定任何内容,则所有javascript函数都返回undefined,因此这不是错误。
我认为Factory
不需要返回一些东西。我在这里创建了一个jsFiddle,发现如果工厂没有返回任何东西,那么注入的工厂的值只是undefined
,不会发生错误。
相关文章:
- Angular,函数在(模型)工厂中返回值
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 修复AngularJS错误:提供程序必须从$get工厂方法返回值
- AngularJS-工厂中promise ID字段的返回值
- 返回一个新函数,而不是工厂中的对象
- 谷歌日历 api 调用可以在角度工厂内返回承诺吗?
- 如何从工厂传递的函数返回值
- AngularJS工厂调用PHP,然后返回AngularJS
- 工厂返回数据后未设置角度$scope
- 在angularjs工厂中,如何在函数解析后返回结果
- webpack优化最小化返回布尔值,而不是工厂值
- 承诺在工厂内,承诺完成前返回
- 从角度工厂返回数据,返回对象后填充数据
- Angular js 工厂不会返回任何带有 404 错误的内容
- AngularJS:从工厂返回配置
- 如何使用在 AngularJS 中返回承诺的$resource测试工厂
- 尝试从工厂中的 ref.on() 返回值到控制器
- 努力将结果从工厂返回到范围
- 角度工厂仅返回部分资源响应
- 在 AngularJs 中,从工厂服务到控制器的返回值丢失