0

У меня есть базовая настройка приложения Polymer (один из примеров приложений с 3 видами в ящике). Я пытаюсь динамически отображать графики Google в каждом представлении. Я загружаю диаграммы Google в функцию Polymer ready() и передаю функцию на setOnLoadCallback. В функции обратного вызова я пытаюсь создать диаграмму и добавить ее в div, но я не могу найти div. Может ли кто-нибудь сказать мне, что я делаю неправильно?Доступ к div в функции обратного вызова Polymer

<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> 

ответ

2

Я думаю, что ваша ошибка здесь:

google.charts.setOnLoadCallback(this.drawBasic) 

Один из способов исправить это с помощью метода bind. Here вы можете найти документацию об этом методе. Поэтому, я полагаю, это будет работать:

google.charts.setOnLoadCallback(this.drawBasic.bind(this)) 
Смежные вопросы