javascript - ng-repeat 返回类型错误 : Cannot read property 'insertBefore' of null

标签 javascript angularjs

我有一个名为 $scope.transactions = [....] 的对象数组,它具有正确的值。但是当我在 ng-repeat 中访问它时,如下所示,它返回上面的内容 错误。

Controller 代码:

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 中使用这个 transactions 数组,如下所示:

我的 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)

更新:

请找到下面的控制台输出:

enter image description here

最佳答案

这是因为 Angular 编译和数据绑定(bind)方式。您必须在 tbody 属性中添加 ng-if="transactions",如下所示:

<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: Cannot call method 'insertBefore' of null

关于javascript - ng-repeat 返回类型错误 : Cannot read property 'insertBefore' of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31264750/

相关文章:

javascript - 如何获取 extjs 组合框中突出显示的项目?

javascript - 如何迭代 Stripe 集合 JSON

javascript - 当用户在弹出窗口外单击时关闭弹出窗口

javascript - 无法检测 ng-click 函数中的点击事件

javascript - angular.equals 如何评估无效的日期对象?

javascript - ng-change 如果所选值大于 6,则更改 td 背景颜色

javascript - 如何 ondragover 更改 jQuery droppable 中可放置区域的颜色?

javascript - 使用 Flot Javascript 绘图库重叠数据线

javascript - 错误: [$compile:ctreq] Controller required by directive ,找不到

angularjs - Angular2 RC5 教程 : Can't bind to 'ngModel' since it isn't a known property of 'input'