gpt4 book ai didi

javascript - 将数据从服务传递到 Controller AngularJS

转载 作者:行者123 更新时间:2023-12-03 07:31:53 25 4
gpt4 key购买 nike

我有一个服务可以从作为参数传递的 url 获取数据。有用。但是当我想将此数据传递给 Controller ​​ $scope 时,我没有得到任何东西

var app= angular.module("ReciboApp",[]);
// -------- SERVICIOS -------------------
app.service("ABMService",function($http){
this.obtenerDatos= function(url){
$http.get(url)
.success(function(data) {
datos = eval(data);
console.log(datos); //[Object, Object, Object, Object, Object]
return datos
})
.error(function(data) {
console.log('Error: ' + data);
});
}
});
// -------- CONTROLADORES -------------------
// -- Empresas --
var empresasController= function($scope, ABMService){
var url= "modelos/empresas_json.php"
$scope.empresas= [];
$scope.empresas = ABMService.obtenerDatos(url);
console.log($scope.empresas); //undefined
}
app.controller("EmpresasCtrl", empresasController);

最佳答案

您的 obtenerDatos 函数不会返回任何内容 - 它只是对 $http 进行异步调用。尝试返回 $http 调用的结果( Angular promise ),然后将 .then 处理程序附加到 Controller 中返回的 promise :

var app= angular.module("ReciboApp",[]);
// -------- SERVICIOS -------------------
app.service("ABMService",function($http){
this.obtenerDatos= function(url){

// add a return statement here
return $http.get(url)

// change .success() to .then()
.then(function(data) {
datos = eval(data);
console.log(datos); //[Object, Object, Object, Object, Object]
return datos;
})

// change .error() to .catch()
.catch(function(data) {
console.log('Error: ' + data);
});
}
});
// -------- CONTROLADORES -------------------
// -- Empresas --
var empresasController= function($scope, ABMService){
var url= "modelos/empresas_json.php"
$scope.empresas= [];

// wait for the obtenerDatos() call to complete, and then
// attach the returned data to the $scope
ABMService.obtenerDatos(url).then(function(datos) {
$scope.empresas = ABMService.obtenerDatos(url);
console.log($scope.empresas); //undefined
});
}
app.controller("EmpresasCtrl", empresasController);

另请注意,我将 .success().error() 回调更改为 .then()。 catch(),自 the former have been deprecated .

关于javascript - 将数据从服务传递到 Controller AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35784502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com