gpt4 book ai didi

javascript - Angular Controller 功能不会将结果从一个功能返回到另一个功能

转载 作者:行者123 更新时间:2023-12-05 01:24:31 26 4
gpt4 key购买 nike

在我的 Controller 中我有一个函数

$scope.orderHistory = {};
$scope.results = {};

var getHistory = function (max,offset)
{
//do some stuff
$scope.orderHistory = data.entities;

angular.forEach($scope.orderHistory,function(value)
{
$scope.results = getResults(value.id);
console.log($scope.results);

});

}


var getResults = function(id)
{

api.getHistoryData(id)
.then ( function (results)
{
return results.data;

});


};

我遇到的问题是 getResults 函数似乎没有实际返回数据,而是在 getHistory 函数中将其设置为 $scope.results。

当我在 getResults 函数的 .then 部分执行 console.log in (results.data) 时,我看到了结果。任何人都可以帮助我理解为什么它不返回结果,即使它存在,以及我可以做些什么来修复它

最佳答案

执行then(function(){...})中的函数asynchronously ,并且包含的​​ getResults 函数不会等待它返回。更具体地说,api.getHistoryData 似乎返回一个 promise .

你可以使用 Angular 的数据绑定(bind)来解决这个问题:

var getHistory = function (max,offset)
{
//do some stuff
$scope.orderHistory = data.entities;

angular.forEach($scope.orderHistory,function(value)
{
getResults(value.id);
});

}

var getResults = function(id)
{
api.getHistoryData(id)
.then ( function (results) {
$scope.results = results.data;
});
};

然后在您的模板中使用如下内容:

<button ng-click="getHistory(0, 0)"></button>
{{results}}

关于javascript - Angular Controller 功能不会将结果从一个功能返回到另一个功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25314493/

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