gpt4 book ai didi

javascript - 在 Angular JS 中使用服务无法返回范围值

转载 作者:行者123 更新时间:2023-11-30 17:06:11 25 4
gpt4 key购买 nike

我刚刚尝试在 Angular JS 中创建一个服务,它成功地调用了函数 $http.get 并返回了值。但是,该值未插入到范围变量中。问题:怎么了?

 angular.module('starter.controllers', [])
.factory('UserService', function($http) {
var data;
return{
getData: function($http) {
return $http.get('http://www.website.com/call12').
success(function(response) {
/// console.log(JSON.stringify(response));
userData=response.data;
return userData;

}).error(function(data, status, headers, config) {
// log error
});

}
}
})


.controller('AppCtrl', function($scope, $ionicModal, $interval,$http,$rootScope,UserService) {

$scope.formData={};
$scope.userData={};

$scope.myCtrl= function(UserService,$http,$rootScope) {

UserService.getData($http).then(function(data,$rootScope) {
$scope.userData = data;

$scope.fullName = data.name;
$scope.balance = data.balance;

}}

$scope.formData.playerName= $scope.userData.name; // $scope.userData is undefined

$scope.myCtrl(UserService,$http);
})

模板

<form ng-submit="submit_editpw()" ng-controller="AppCtrl">  
<pre>userData : {{userData}}</pre> //retuns data
<pre>name: {{fullName}}</pre> //returns empty
</form>

最佳答案

您没有正确使用异步 getData 方法。因为这是一个 promise object你应该使用它的 then 方法:

UserService.getData().then(function(data) {
$scope.userData = data;
});

还要确保 getData 返回一个 promise :

getData: function () {
return $http.get('http://m.sepakbola.cc/index.php/id/user/call12').success(function (response) {
userData = response.data;
return userData;
}).error(function (data, status, headers, config) {
// log error
});
}

关于javascript - 在 Angular JS 中使用服务无法返回范围值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27978220/

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