我有一个填充的Google桌面,但是一列需要使用行的网址值从API获取实时数据。
使用这样的函数可以得到值:
$(function(){
getPrice('www.example.com/specificJSON')
function getPrice(url) {
$.getJSON(url, function (data) {
console.log(parseInt(data.value));
return data.value
})
}
})
但是如何将其链接到表格?想象一下,每一行都有自己的url,动态需要获取值并在表格单元格中打印。有没有办法从url作为变量的单元格调用我的函数?我可以在单元格中打印任何字符串。
假设字符串可能是这样的:
'用getPrice(' www.example.com/specificJSON2 ')'
加载后会变为:
24
另一种方法是在表完成加载时循环遍历行,并开始替换单元格的信息,我猜?在这里做什么最好,记住它应该有点快。
理想情况下,我想做的是从源(<img src="www.thebestimage.com">
)获取图像,然后是jsonvalue。
编辑:所以与许多关于在桌面上使用JSON的帖子相反,我不是从JSON数据生成表,而是需要在单个单元格中动态显示jsondata。检索信息已在表格中呈现。
答案 0 :(得分:0)
我在单元格中使用以下HTML解决了它:
'<span class="getValue" data-Id="24">Loading...</span>'
这可以预先生成为字符串。
然后使用此事件侦听器,我可以加载数据:
google.visualization.events.addListener(table, 'ready', function(){
$('.getValue').each(function(){
var self = $(this)
var id = this.getAttribute('data-Id')
$.getJSON('www.getjsondatawithid/'+id, function (data) {
try {
self.text(data.text.first) //Select the JSON value.
} catch(err) {
self.text('Error') //Or set the text to error.
}
})
})
})
这将替换每个单元格的跨度文本。请务必在Google表格绘制选项中启用HTML:
table.draw(data, {showRowNumber: true, width: '100%', height: '100%', allowHtml: true});