AngularJS нг-повтор не работает с Promise.all - PullRequest
2 голосов
/ 11 января 2020

У меня странная проблема, которую я не смог понять. Мой 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 ()) не показывает ошибок в журналах

1 Ответ

2 голосов
/ 11 января 2020

Обещания ES6, созданные Promise.all, не интегрированы с каркасом 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, предоставляя собственную обработку событий l oop. Это разбивает JavaScript на классический и AngularJS контекст выполнения. Только операции, которые применяются в контексте выполнения AngularJS, получат выгоду от AngularJS привязки данных, обработки исключений, отслеживания свойств и т. Д. c.

Для получения дополнительной информации см.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...