Отображение результатов нескольких запросов SQL Oracle на странице AngularJS - PullRequest
0 голосов
/ 09 мая 2018

Поэтому мне нужно отобразить несколько результатов SQL-запроса для одного и того же компонента в AngularJS.

Как бы я это сделал? До сих пор я понял, что компонент может обрабатывать только один http-запрос, как здесь:

'use strict';
angular.module('cryostat', []).component('cryostat', {
    templateUrl: 'cryostat/cryostat.template.html',
    controller: function cryostatController($http) {
        this.pageTitle = "NP04 Cryostat"
        this.natalie = 1;
        $http.get("cryostat.conn.php")
           .then(function (response) {this.TT0101 = response.data.records;});
    }
});

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Используйте $q.all() для вашей цели.

var myData_One, myData_two;
var promises = [];
function promiseA() {
    let deferred = $q.defer();

    ajaxCall().then((response) => {
        $scope.myData_One = response;
        deferred.resolve();
    }, (error) => {
        deferred.reject(error);
    });

    return deferred.promise;
}
function promiseB() {
    let deferred = $q.defer();

    ajaxCall().then((response) => {
        $scope.myData_two = response;
        deferred.resolve(response);
    }, (error) => {
        deferred.reject(error);
    });

    return deferred.promise;
}
var promises = [promiseA(), promiseB()];
$q.all(promises).then((values) => {
    //Do whatever you wish to with response data from both promises.
});
0 голосов
/ 09 мая 2018

Я понял, что компонент может обрабатывать только один http-запрос

Это совсем не так. Где ты это слышал? Легко сделать два запроса одновременно с $q.all():

var promiseOne = $http.get("query1.php");
var promiseTwo = $http.get("query2.php");

$q.all([promiseOne, promiseTwo]).then(function(resultArray) {
  $scope.resultOne = resultArray[0];
  $scope.resultTwo = resultArray[1];
});
...