AngularJS ng-repeat 不适用于 Promise.all
AngularJS ng-repeat not working with Promise.all
我遇到了一个奇怪的问题,一直无法弄清楚。我的 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 的大小是第二个有效的两倍。你能看到我在这里遗漏的东西吗?两个控制台都记录 return 正确的数据。第一个(不起作用,包含 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 数据绑定、异常处理、属性 监视等
有关详细信息,请参阅
我遇到了一个奇怪的问题,一直无法弄清楚。我的 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 的大小是第二个有效的两倍。你能看到我在这里遗漏的东西吗?两个控制台都记录 return 正确的数据。第一个(不起作用,包含 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 数据绑定、异常处理、属性 监视等
有关详细信息,请参阅