ng-repeat возвращает TypeError: невозможно прочитать свойство 'insertBefore' из null

0

У меня есть массив объектов, называемый $ scope.transactions = [....], и он имеет правильные значения. но когда я обращаюсь к нему внутри ng-repeat, как показано ниже, он возвращает указанную выше ошибку.

код контроллера:

application.controller("custTransactionCtrl", function($scope, StbetServices) {
    $scope.transactions=[];
    .....
    .......
     $.ajax({
            url: 'CustomerTransaction',
            type: "POST",
            data: {
                fromDate: fromDate,
                toDate: toDate,
                type:$scope.selectedItem.id
            },
            success: function(data1) {
                 $scope.transactions = JSON.parse(data1);

            },
            error: function(jqXHR) {
                console.log(jqXHR.responseText);
            }
        });

и я использую этот массив транзакций внутри своего html, как показано ниже:

Мой HTML:

         <tbody>
                <tr ng-repeat="t in transactions">
                    <td align="left">{{t.transactionDescription}}</td>
                    <td align="left">{{t.transactionDate}} </td>
                    <td align="left">{{t.transactionAmount}}</td>
                    <td align="left">{{t.customerAccount.id}}</td>
                    <td align="left">{{t.transactionReference}}</td>
                    <td align="left">{{t.transactionReference2}}</td>
                </tr>
            </tbody>

это вернет ****TypeError: Cannot read property 'insertBefore' of null**** и полное сообщение об ошибке:

TypeError: Cannot read property 'insertBefore' of null
    at http://192.168.1.222:8080/stbet/lib/angular.js:2247:13
    at forEach (http://192.168.1.222:8080/stbet/lib/angular.js:133:18)
    at forEach.after (http://192.168.1.222:8080/stbet/lib/angular.js:2246:5)
    at Object.JQLite.(anonymous function) [as after] (http://192.168.1.222:8080/stbet/lib/angular.js:2301:17)
    at http://192.168.1.222:8080/stbet/lib/angular.js:14038:22
    at publicLinkFn (http://192.168.1.222:8080/stbet/lib/angular.js:4095:29)
    at Object.ngRepeatWatch (http://192.168.1.222:8080/stbet/lib/angular.js:14037:13)
    at Object.$get.Scope.$digest (http://192.168.1.222:8080/stbet/lib/angular.js:8090:47)
    at Object.$get.Scope.$apply (http://192.168.1.222:8080/stbet/lib/angular.js:8304:24)
    at HTMLButtonElement.<anonymous> (http://192.168.1.222:8080/stbet/lib/angular.js:13255:17)

ОБНОВЛЕНО:

найдите консольный вывод ниже:

Изображение 174551

Теги:

1 ответ

0

Это потому, что угловая компиляция и как данные связаны. Вы должны добавить ng-if="transactions" в атрибуты tbody как это:

<tbody ng-if="transactions">
    <tr ng-repeat="t in transactions">
        <td align="left">{{t.transactionDescription}}</td>
        <td align="left">{{t.transactionDate}} </td>
        <td align="left">{{t.transactionAmount}}</td>
        <td align="left">{{t.customerAccount.id}}</td>
        <td align="left">{{t.transactionReference}}</td>
        <td align="left">{{t.transactionReference2}}</td>
    </tr>
</tbody>

Танки для хассассина за его помощью. Дополнительная информация здесь: Angularjs: TypeError: невозможно вызвать метод 'insertBefore' из null

Ещё вопросы

Сообщество Overcoder
Наверх
Меню