Доступ к 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))
Другие вопросы по тегам