Доступ к div внутри функции обратного вызова Polymer
У меня есть базовая настройка приложения Polymer (одно из примеров приложений с 3 видами в ящике). Я пытаюсь динамически отображать диаграммы Google в каждом представлении. Я загружаю диаграммы Google в функцию Polymer ready() и передаю функцию в setOnLoadCallback. В функции обратного вызова я пытаюсь создать диаграмму и добавить ее в div, но не могу найти div. Может кто-нибудь сказать мне, что я делаю не так?
<div id="chart_div" style="width: 900px; height: 500px"></div>
<script>
Polymer({
is: 'my-view1',
ready: function() {
console.log('Polymer ready');
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(this.drawBasic);
},
drawBasic : function() {
console.log('preparing to create chart');
var chart_div = this.$.chart_div;
console.log(chart_div);
}
});
</script>
1 ответ
Решение
Я думаю, что ваша ошибка здесь:
google.charts.setOnLoadCallback(this.drawBasic)
Один из способов исправить это с помощью bind
метод. Здесь вы можете найти документацию по этому методу. Итак, я полагаю, это будет работать:
google.charts.setOnLoadCallback(this.drawBasic.bind(this))