Angularjs Angular JS:服务响应未保存到变量
我正在试图找出此服务的响应未保存到Angularjs Angular JS:服务响应未保存到变量,angularjs,angularjs-scope,angular-services,Angularjs,Angularjs Scope,Angular Services,我正在试图找出此服务的响应未保存到$scope.counter的原因。我在我的服务中添加了一个函数fetchCustomers(p),该函数接受一些参数并返回一个数字,我想将其保存到$scope.counter 服务 angular.module('app') .factory('MyService', MyService) function MyService($http) { var url = 'URL''; return { fetchTotal: function(
$scope.counter
的原因。我在我的服务中添加了一个函数fetchCustomers(p)
,该函数接受一些参数并返回一个数字,我想将其保存到$scope.counter
服务
angular.module('app')
.factory('MyService', MyService)
function MyService($http) {
var url = 'URL'';
return {
fetchTotal: function(p) {
return $http.get(url, { params: p })
.then(function(response) {
return response.data.meta.total;
}, function(error) {
console.log("error occured");
})
}
}
}
控制器
$scope.counter = MyService.fetchTotal(params).then(function(response) {
console.log(response);
return response;
});
但出于某种原因,这是行不通的。控制台会记录该值,但不会将其保存到
$scope.counter
。有什么想法吗?如果我正确理解了您的问题,您将$scope.计数器设置为承诺,而不是响应
MyService.fetchTotal(params).then(function(response) {
// Anything dealing with data from the server
// must be put inside this callback
$scope.counter = response;
console.log($scope.counter); // Data from server
});
// Don't do this
console.log($scope.counter); // Undefined
如果我正确理解了您的问题,您将$scope.counter
设置为承诺,而不是响应
MyService.fetchTotal(params).then(function(response) {
// Anything dealing with data from the server
// must be put inside this callback
$scope.counter = response;
console.log($scope.counter); // Data from server
});
// Don't do this
console.log($scope.counter); // Undefined
如果我正确理解了您的问题,您将$scope.counter
设置为承诺,而不是响应
MyService.fetchTotal(params).then(function(response) {
// Anything dealing with data from the server
// must be put inside this callback
$scope.counter = response;
console.log($scope.counter); // Data from server
});
// Don't do this
console.log($scope.counter); // Undefined
如果我正确理解了您的问题,您将$scope.counter
设置为承诺,而不是响应
MyService.fetchTotal(params).then(function(response) {
// Anything dealing with data from the server
// must be put inside this callback
$scope.counter = response;
console.log($scope.counter); // Data from server
});
// Don't do this
console.log($scope.counter); // Undefined
可能只是一个输入错误,但是在'URL''
周围有一个额外的引号,您正在为返回的承诺分配$scope.counter
,而不是响应。您的回调应该有分配$scope.counter=response
是的,很抱歉,这可能只是一个输入错误,但是您在'URL'
周围有一个额外的引号,您将$scope.counter
分配给返回的承诺,而不是响应。您的回调应该有分配$scope.counter=response
是的,很抱歉,这可能只是一个输入错误,但是您在'URL'
周围有一个额外的引号,您将$scope.counter
分配给返回的承诺,而不是响应。您的回调应该有分配$scope.counter=response
是的,很抱歉,这可能只是一个输入错误,但是您在'URL'
周围有一个额外的引号,您将$scope.counter
分配给返回的承诺,而不是响应。您的回调应该具有赋值$scope.counter=response
是的,很抱歉,这是一个输入错误,但是当我现在执行$scope.counter
时,它返回为未定义:MyService.fetchTotalCustomers(params)。然后(函数(响应){$scope.counter=response;});console.log($scope.counter)
console.log(response.data.meta.total)
在您的服务中,查看这是否未定义。这将注销号码。这就是为什么它让我发疯的原因。把它放在承诺回调中<代码>然后(函数(响应){$scope.counter=response;console.log($scope.counter);})
注意,console.log()
现在位于承诺回调中。只要在承诺回调中设置$scope.counter
,它就可以在视图中使用。它应该在这一点上起作用。你测试过了吗?如果没有,请使用HTML标记更新您的问题,但当我现在执行$scope.counter
时,它返回为未定义:MyService.fetchTotalCustomers(params)。然后(函数(响应){$scope.counter=response;});console.log($scope.counter)
console.log(response.data.meta.total)
在您的服务中,查看这是否未定义。这将注销号码。这就是为什么它让我发疯的原因。把它放在承诺回调中<代码>然后(函数(响应){$scope.counter=response;console.log($scope.counter);})注意,console.log()
现在位于承诺回调中。只要在承诺回调中设置$scope.counter
,它就可以在视图中使用。它应该在这一点上起作用。你测试过了吗?如果没有,请使用HTML标记更新您的问题,但当我现在执行$scope.counter
时,它返回为未定义:MyService.fetchTotalCustomers(params)。然后(函数(响应){$scope.counter=response;});console.log($scope.counter)
console.log(response.data.meta.total)
在您的服务中,查看这是否未定义。这将注销号码。这就是为什么它让我发疯的原因。把它放在承诺回调中<代码>然后(函数(响应){$scope.counter=response;console.log($scope.counter);})注意,console.log()
现在位于承诺回调中。只要在承诺回调中设置$scope.counter
,它就可以在视图中使用。它应该在这一点上起作用。你测试过了吗?如果没有,请使用HTML标记更新您的问题,但当我现在执行$scope.counter
时,它返回为未定义:MyService.fetchTotalCustomers(params)。然后(函数(响应){$scope.counter=response;});console.log($scope.counter)
console.log(response.data.meta.total)
在您的服务中,查看这是否未定义。这将注销号码。这就是为什么它让我发疯的原因。把它放在承诺回调中<代码>然后(函数(响应){$scope.counter=response;console.log($scope.counter);})注意,console.log()
现在位于承诺回调中。只要在承诺回调中设置$scope.counter
,它就可以在视图中使用。它应该在这一点上起作用。你测试过了吗?如果没有,请使用HTML标记更新您的问题