gpt4 book ai didi

javascript - AngularJS ng-repeat 不适用于 Promise.all

转载 作者:行者123 更新时间:2023-12-04 10:46:15 25 4
gpt4 key购买 nike

我有一个奇怪的问题正在发生,我无法弄清楚。我的 Angular 代码看起来像这样

Promise.all([RunsAudit.getModelRuns({}), Runs.getModelRuns({})])
.then(function(result){
$scope.modelRunPageData = result[0].data.data.concat(result[1].data.data);
console.log($scope.modelRunPageData);
});

重要的html代码看起来像这样
<tr ng-repeat ="run in modelRunPageData | orderBy:predicate:reverse" >
<td><a href="#!runId/{{run.id}}" target="_blank">
{{run.custAppReferenceId}}</a></td>
<td> {{run.creditPolicy}}</td>
<td> {{run.creditPolicyVersion}}</td>
<td> {{run.creditServiceName}}</td>
<td> {{run.createdDate | date:'medium' }}</td>
</table>

这不起作用。但是,当我将此作为我的 Angular 代码时
 Runs.getModelRuns({})
.then(function(result) {
$scope.modelRunPageData = result.data.data;
console.log($scope.modelRunPageData);
});

它确实有效。这让我很困惑。

我看到的唯一区别是第一个 modelRunPageData 是第二个有效的大小的两倍。你能看到我在这里缺少的东西吗?两个控制台日志都返回正确的数据。第一个(不起作用,包含 Promise.all())在日志中没有显示任何错误

最佳答案

Promise.all 创建的 ES6 Promise没有与 AngularJS 框架集成。而是使用 $q.all :

̶P̶r̶o̶m̶i̶s̶e̶.̶a̶l̶l̶(̶[̶R̶u̶n̶s̶A̶u̶d̶i̶t̶.̶g̶e̶t̶M̶o̶d̶e̶l̶R̶u̶n̶s̶(̶{̶}̶)̶,̶ ̶R̶u̶n̶s̶.̶g̶e̶t̶M̶o̶d̶e̶l̶R̶u̶n̶s̶(̶{̶}̶)̶]̶)̶ 
$q.all([RunsAudit.getModelRuns({}), Runs.getModelRuns({})])
.then(function(result){
$scope.modelRunPageData = result[0].data.data.concat(result[1].data.data);
console.log($scope.modelRunPageData);
});

AngularJS 通过提供自己的事件处理循环来修改正常的 JavaScript 流程。这将 JavaScript 拆分为经典和 AngularJS 执行上下文。只有在 AngularJS 执行上下文中应用的操作才能受益于 AngularJS 数据绑定(bind)、异常处理、属性监视等。

有关详细信息,请参阅
  • AngularJS $q Service API Reference - $q.all
  • 关于javascript - AngularJS ng-repeat 不适用于 Promise.all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59689718/

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