【发布时间】:2015-09-03 01:57:02
【问题描述】:
我正在尝试扩展$log 服务,以便它也向服务器发送消息。由于$http 使用$log,我收到来自Angular“找到循环依赖项”的错误。
app.js:
angular.module("app").config(function($provide) {
$provide.decorator("$log", function($delegate, NodeLogger) {
var logFn = $delegate.log;
$delegate.log = function(message) {
NodeLogger.log(message);
logFn.apply(null, arguments);
};
});
});
NodeLogger.js:
angular.module("app").factory("NodeLogger", function($http) {
function log(type, message) {
var logMessage = type + ":" + message;
$http.post("http://localhost:3000/log", "message=" + logMessage);
}
return {
log: log
}
});
我尝试在app.js 中使用$injector 来加载$http 并发出POST 请求,但它给出了同样的错误。有没有办法解决这个问题?我可以避免使用$http/$resource吗?
谢谢!
【问题讨论】:
-
不要直接使用service或者factory,而是使用injector。
标签: angularjs http logging decorator