首页 / JAVASCRIPT / javascript – 在ngTables中,第三次运行$scope.tableParams.reload()会导致TypeError:无法设置null的属性’$data’
javascript – 在ngTables中,第三次运行$scope.tableParams.reload()会导致TypeError:无法设置null的属性’$data’
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在ngTables中,第三次运行$scope.tableParams.reload()会导致TypeError:无法设置null的属性’$data’,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2640字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 在ngTables中,第三次运行$scope.tableParams.reload()会导致TypeError:无法设置null的属性’$data’](/upload/InfoBanner/zyjiaocheng/818/4e95b72d98dd4557b62020b0181fa879.jpg)
此错误与AngularJS的ngTable插件有关.
我似乎有一个非常奇怪的错误.基本上,我可以运行$scope.tableParams.reload()两次没有问题,但在第三次执行时,以及随后的每一次,我收到以下错误:
TypeError: Cannot set property '$data' of null at [removed]/ng-table.js:411:55
我相信这是所有相关的代码,但如果有任何遗漏,请告诉我:
$scope.lookupAddress = function(address){
var url = 'https://blockchain.info/multiaddr?cors=true&active='+address;
$scope.loading = true;
$scope.clearTableData();
$http.get(url).success(function(data){
$scope.loading = false;
$scope.loaded = true;
$scope.loadError = false;
glob = data;
//I believe the next few for loops, and the assignment of transactions, is not relevant to finding the code. That being said, I've included it because bugs hide where you least expect it.
for (i = data.txs.length -1; i > -1; i-- ){
var inputAddr = [];
for (z = 0; z < data.txs[i]['inputs'].length; z++){
inputAddr.push(data.txs[i]['inputs'][z]['prev_out']['addr'])
}
var outputAddr = [];
for (z = 0; z < data.txs[i]['out'].length; z++){
outputAddr.push(data.txs[i]['out'][z]['addr'])
}
transactions[i] = {
'Hash' : data.txs[i]['hash'],
'Amount' : data.txs[i]['result'] / 100000000,
'Balance' : data.txs[i]['balance'] / 100000000,
'InputAddress' : inputAddr,
'OutputAddress' : outputAddr,
'Date' : timeConverter(data.txs[i]['time'])
};
};
//You can also ignore this too... probably.
$scope.output = {
'BTC' : data.wallet.final_balance / 100000000, //Response in satoshi, so have to divide.
'Address' : address,
'Total Received': data.addresses[0].total_received / 100000000,
'Total Sent': data.addresses[0].total_sent / 100000000,
'Transactions' : transactions
};
//Enables new data to be loaded, e.g. on a new address.
if ($scope.tableParams){
$scope.tableParams.reload();
}
data = transactions;
$scope.tableParams = new ngTableParams({
page: 1,
count: 5, // items per page
sorting: {
Date: 'desc'
}
}, {
total: transactions.length,
getData: function($defer, params) {
data = transactions;
var orderedData = params.sorting() ? $filter('orderBy')(data, params.orderBy()) : data;
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
}).
error(function(data){
$scope.loadError = true;
});
}
$scope.clearTableData = function(){
transactions = [];
$scope.output = {}
if ($scope.tableParams){
$scope.tableParams.reload();
}
}
解决方法:
我知道这已经太晚了,但我想更好地为其他寻求同一问题答案的人发表评论.
我也有同样的问题,并通过以下URL中的示例设法修复.
https://github.com/esvit/ng-table/blob/master/src/scripts/04-controller.js
我刚刚在’ngTableParams’实例创建后将以下代码行添加到我的代码中.
$scope.params.settings().$scope = $scope;
内容总结
以上是互联网集市为您收集整理的javascript – 在ngTables中,第三次运行$scope.tableParams.reload()会导致TypeError:无法设置null的属性’$data’全部内容,希望文章能够帮你解决javascript – 在ngTables中,第三次运行$scope.tableParams.reload()会导致TypeError:无法设置null的属性’$data’所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。