【发布时间】:2015-04-27 18:57:41
【问题描述】:
使用服务和 http 时出现错误 Error: [$injector:undef]。在更改针对此特定错误建议的所有更改后,我找不到为什么会出现这种情况。请检查以下代码
mainApp.controller('deviceDataController',["$scope","mainService", function ($scope,mainService) {
console.log(mainService);
mainService.deviceDataVar().success(function (data) {
// $scope.deviceDetails = mainService.devices;
console.log(data);
});
}]);
mainApp.factory("mainService",["$http", function ($http) {
angular.forEach(deviceIds, function(value, key) {
var timezone = user_response.timezone;
var DataUrl = LAX_API + "device_info.php?deviceid=" + value + "&limit=288&timezone=" + timezone;
return {
deviceDataVar: function () {
return $http.get(DataUrl).success(function (response) {
devices = response.data;
return devices;
}).error(function (data, status, headers, config) {
// log error
console.log(data)
});;
}
}
});
}]);
请帮我解决我的问题
谢谢!!
【问题讨论】:
-
您的工厂代码无效,Factoy 应该只返回公共方法,您是在 forEach 循环中创建它们。是正确的代码,还是无效的复制粘贴?
-
这是正确的代码..当我在循环内进行控制台时,我得到了值但无法返回它。
-
所以简而言之,您想为每个 deviceId 调用多个 AJAX 调用并将所有结果汇总到一个列表中? deviceIds 有多少个元素?
-
2 最大值,这是一个动态值。是的,我需要调用这两个值。
-
我已经弄清楚了:) 我创建了一个示例代码,它可以帮助您解决问题,并附有一些描述。
标签: angularjs