AngularJS: как обрабатывать несколько запросов http на одной странице с использованием разных контроллеров - PullRequest
0 голосов
/ 07 марта 2020

Я использую два контроллера на одной странице для получения двух разных результатов от сервера, использующего http-запрос в Angularjs, но получение результатов только из примера кода первого запроса ниже

<div ng-app="na_details">
    <div ng-controller="na_details_ctrl">

            <tbody>
                <tr ng-repeat="x in na_seats">
                <td>{{ $index+1}}</td>
                    <td>{{ x.name }}</td>
                    <td>{{ x.party }}</td>
                    <td>{{ x.votes }}</td>
                </tr>
            </tbody>
        </table>
    </div>
    <div name="div" class="section-row">
        <div class="section-title">
            <h2 class="title">Other Related National Assemblies Results </h2>
        </div>
        <div ng-controller="related_ctrl">
            <tr ng-repeat="seat in related_seats">
                    <td>{{seat.name}}</td>

            </tr>  
        </div>   

    </div>
var app = angular.module('na_details', []);

app.controller('na_details_ctrl', function($scope, $http) {
    $http.get("get-na-details.php",
    {params:{"seat_id": <?php echo $seat_id;?>}}
    )
    .then(function (response) {
        $scope.na_seats = response.data;
    });
});

app.controller('related_ctrl', function($scope, $http) {
    $http.get("get-related-na-details.php",
    {params:{"seat_id": <?php echo $seat_id;?>}}
    )
    .then(function (response) {
        $scope.related_seats = response.related_data;
    });
});

1 Ответ

1 голос
/ 07 марта 2020

ERRONEOUS

<div ng-controller="related_ctrl">
    <tr ng-repeat="seat in related_seats">                
        <td>{{seat.name}}</td>
    </tr>  
</div>

Когда анализатор HTML5 видит недопустимые теги <tr> и <td>, он игнорирует их. Компилятор AngularJS не увидит директиву ng-repeat, поскольку элемент <tr> не добавлен в DOM.

BETTER

<table ng-controller="related_ctrl">
    <tr ng-repeat="seat in related_seats">                
        <td>{{seat.name}}</td>
    </tr>  
</table>

В этом случае * Парсер 1035 * автоматически добавит элемент <tbody> к <table> и добавит к этому элементу <tr> <tbody>. Директива ng-repeat будет добавлена ​​в DOM, и с ней будет работать компилятор AngularJS.

Следует позаботиться о том, чтобы HTML следовал правилам для <table> элементов.

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

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