Ada*_*dam 4 javascript angularjs ngtable
此错误与AngularJS 的ngTable插件有关.
我似乎有一个非常奇怪的错误.基本上,我可以运行$scope.tableParams.reload()两次没有问题,但在第三次执行时,以及随后的每一次,我得到以下错误:
TypeError: Cannot set property '$data' of null at [removed]/ng-table.js:411:55
Run Code Online (Sandbox Code Playgroud)
我相信这是所有相关的代码,但如果有任何遗漏,请告诉我:
$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();
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这已经太晚了,但我想更好地为其他寻求同一问题答案的人发表评论.
我也有同样的问题,并通过以下URL中的示例设法修复.
https://github.com/esvit/ng-table/blob/master/src/scripts/04-controller.js
我刚刚在'ngTableParams'实例创建后将以下代码行添加到我的代码中.
$scope.params.settings().$scope = $scope;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8423 次 |
| 最近记录: |