我有一个名为 $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)
更新:
请找到下面的控制台输出:
最佳答案
这是因为 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/