是否可以在我的模块的配置部分注入$ q?下面是我的示例配置部分.
.config(['$q', function ($q) { var func = function (inp) { var def = $q.defer(); if (inp == 1) def.resolve("Success"); else def.reject("Failure"); return def.promise; }; alert(func(1)); }]);
我得到的第一个错误是 未捕获错误:未知提供者:来自ReportModule的$ q 如果我改变了
.config(['$q', function ($q) {}])
至
.config(['$qProvider', function ($q) {}])
然后我得到一个错误说Uncaught TypeError:Object#没有来自ReportModule的方法'defer'
好像我不能在配置部分注入$ q.是这样的,还是我做错了什么?我有一个用例,我需要在我的模块的配置部分使用$ q和$ http进行初始化.这有什么技巧吗?
您可以使用angular.injector
加载$http
和$q
配置块中的其他服务:
angular.module('myApp').config(function () { var injector = angular.injector(['ng']), http = injector.get('$http'), q = injector.get('$q'); });
正确 - 你不能从配置函数注入$ http或$ q.它们尚不可用(它们也正在配置!).