2015-03-10 2 views
1

Я пытаюсь реализовать спидометр в моем приложении рельсов с помощью этого linkПолучение «(анонимная функция)» ошибка в терминале

Но я получаю следующее сообщение об ошибке

Uncaught ReferenceError: google is not defined 
(anonymous function) 

Вот мой пример кофе сценарий код

$(document).ready -> 
    drawChart = -> 
     data = google.visualization.arrayToDataTable([ 
     [ 
      'Label' 
      'Value' 
     ] 
     [ 
      'Memory' 
      80 
     ] 
     [ 
      'CPU' 
      55 
     ] 
     [ 
      'Network' 
      68 
     ] 
     ]) 
     options = 
     width: 400 
     height: 120 
     redFrom: 90 
     redTo: 100 
     yellowFrom: 75 
     yellowTo: 90 
     minorTicks: 5 
     chart = new (google.visualization.Gauge)(document.getElementById('widget-inner')) 
     chart.draw data, options 
     setInterval (-> 
     data.setValue 0, 1, 40 + Math.round(60 * Math.random()) 
     chart.draw data, options 
     return 
    ), 13000 
     setInterval (-> 
     data.setValue 1, 1, 40 + Math.round(60 * Math.random()) 
     chart.draw data, options 
     return 
    ), 5000 
     setInterval (-> 
     data.setValue 2, 1, 60 + Math.round(20 * Math.random()) 
     chart.draw data, options 
     return 
    ), 26000 
     return 

    google.load 'visualization', '1.0', 'packages': [ 'gauge' ] 
    google.setOnLoadCallback drawChart 

и вот мой файл index.html.haml, в котором я пытаюсь добавить данный спидометр.

.content-container.widgets-container 
    %h2 "This is Client Manager Dashboad page" 
    = link_to "Add New Widget", admin_widgets_path, :class => "btn btn-info" 
    .widgets-wrapper 
    #widget-1.col-sm-4 
     .widget-inner#widget-inner 

Также я добавил файл JSAPI скрипт в макете

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 

Может ли один скажите мне, как устранить ошибку поддавки.

Я использую рельсы 3.2.11 и рубин 1.9.3

+0

Кажется, что Jsapi не загружается, прежде чем вы начнете использовать функцию google. Из фрагментов трудно сказать, почему это может произойти. Есть ли способ убедиться, что jsapi загружен до использования функции google? – Alejandro

ответ

1

Похоже, сценарий JSAPI не завершил загрузку, когда $(document).ready пожары вверх. Готовность не означает, что все загружены. Поместите включение сценария jsapi перед сценарием $(document).ready.

Смежные вопросы