У меня, вероятно, отсутствует что-то очень очевидное здесь, но почему следующее не записывает ничего в журнал? (Jsfiddle здесь - http://jsfiddle.net/hiwilson1/qk9cjuh2/ - хотя это не работает для меня)Tableau Javascript API workbook.activeSheet()
<html>
<head>
<style>
#tableauViz {
width: 1500px;
height: 500px;
}
input[type="button"] {
margin: 5px;
}
</style>
<script type="text/javascript" src="https://online.tableau.com/javascripts/api/tableau-2.0.0.min.js"></script>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
window.onload = function() {
// append visualisation container
d3.select("body").append("div").attr("id", "tableauViz")
// function to build visualisation.
function initializeViz() {
var placeholderDiv = document.getElementById("tableauViz");
var url = "http://public.tableau.com/views/WorldIndicators/GDPpercapita";
var options = {
width: placeholderDiv.offsetWidth,
height: placeholderDiv.offsetHeight,
hideTabs: false,
hideToolbar: true,
onFirstInteractive: function() {
workbook = viz.getWorkbook();
activeSheet = workbook.getActiveSheet();
}
};
viz = new tableau.Viz(placeholderDiv, url, options);
}
initializeViz();
// switch worksheet function.
function switchTab(val) {
workbook.activateSheetAsync(val);
}
d3.select("body").append("input")
.attr("type", "button")
.attr("value", "click me")
.on("click", function() {switchTab("GDP per capita map")})
console.log(workbook.activeSheet)
}
</script>
</head>
<body>
</body>
</html>
Я построил визуализации, а затем соорудил кнопку, чтобы запустить небольшую функцию, которая изменяет таблицу. Я могу получить доступ к объекту книги из этой функции, но нет ничего особенного в функции, которая дает ему право доступа к этому объекту книги. Почему я не могу также выводить информацию о объекте книги в журнал?
Ошибка, которую я получаю, это «Исходная ошибка: книга не определена». Если он не определен, как функция может его использовать ?!
Превосходно, спасибо Ричи. Я просто спрашивал об этом из любопытства - я относительно новичок в js, и все продолжают советовать мне писать информацию на консоль, чтобы понять, что происходит. Итак, чтобы сделать это, мне нужно убедиться, что виз полностью «загружен» первым? – hwilson1
@ hwilson1: Да; порядок отображения вашего кода на экране - это не тот порядок, в котором он работает. :-) – RichieHindle