【发布时间】:2016-01-03 10:05:18
【问题描述】:
我正在努力解决使用 Meteor JS 的问题。
我调用了一个 api,它返回给我一个 Json 数组,它看起来像在这个 url 上返回的那个(由于大小的原因,我没有把整个数组放在这里):https://blockchain.info/address/12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX?format=json&offset=0
我称之为服务器端:
if (Meteor.isServer) {
Meteor.methods({
getWalletPreviousTx: function() {
var url = "https://blockchain.info/address/12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX?format=json&offset=0";
var result = Meteor.http.get(url);
if(result.statusCode==200) {
var tx = JSON.parse(result.content);
return tx;
} else {
console.log("Response issue: ", result.statusCode);
var errorJson = JSON.parse(result.content);
throwError("Couldn't fetch wallet balance from Blockchain, try again later !");
}
}
});
}
然后我通过特定模板中的助手将其检索到我的视图中:
Template.wallet.helpers({
addrTxs: function () {
Meteor.call('getWalletPreviousTx', function(err, tx) {
console.log(tx);
return [tx];
});
}
});
助手中的 console.log 实际上记录了我的 Json 数组,这意味着它可以访问它。 现在我正在努力的部分是将这个 Json 检索到我的视图中,我尝试了很多方法,但它们都不起作用,实际上我有这个:
<template name="wallet">
<table>
{{#each addrTxs}}
<ul>
{{> addrTx}}
</ul>
{{/each }}
</table>
</template>
我要显示的Json部分是每笔交易的“addr”和“value”:
"inputs":[
{
"sequence":4294967295,
"prev_out":{
"spent":true,
"tx_index":97744124,
"type":0,
"addr":"1AWAsn8rhT555RmbMDXXqzrCscPJ5is5ja",
"value":50000,
"n":0,
"script":"76a914683d704735fd591ba9f9aebef27c6ef00cbd857188ac"
}
}
]
事实是,我从未设法在我的视图中显示此 Json 数组中的任何内容,即使直接将其放在我的视图中也不会显示任何内容:
{{addrTxs}}
我做错了什么?有人可以帮忙吗?
感谢阅读。
----------- 编辑----------
我认为问题更多在于我的帮助程序和模板是在 api 调用完成之前加载的(因为 console.log 在我的页面呈现后 3 秒出现在我的控制台中)。如何让我的助手等到 api 调用完成后再在视图中呈现它?我用的是铁路由器。
我试图在我的路由上添加一个 waitOn 操作,以便等到我的 api 调用完成:
Router.route('/wallet', {
name: 'wallet',
template: 'wallet',
loadingTemplate: 'loading',
waitOn: function () {
Meteor.call('getWalletPreviousTx', function(error, result) {
if(!error) {
Ready.set(result)
}
});
return [
function () { return Ready.get(); }
];
},
action: function () {
if (this.ready())
this.render();
else
this.render('loading');
}
});
上面带有 waitOn 操作的代码似乎可以工作(我没有错误),但我不知道如何在我的视图中显示来自的特定结果:
if(!error) {
Ready.set(result)
}
【问题讨论】:
标签: javascript arrays json meteor