Pregunta

Puedo conseguir un éxito Open Flash Chart por visión. Ahora estoy tratando de soportar múltiples gráficas abiertas destello por la vista pero el código fuente que muestra los identificadores de los dos divs generados son los mismos:

# javascript at top of view
<%= javascript_include_tag "swfobject.js", :cache => true %>

# view itself
<%= @graph.html_safe %>  # html_safe is necessary for Rails 3
<%= @graph2.html_safe %>

# view's source code
<div id='flashcontent_913000'></div> 
  <script type="text/javascript"> 
    swfobject.embedSWF(
    "/open-flash-chart.swf","flashcontent_913000",
    "440", "310", "9.0.0", "expressInstall.swf",
    {"data-file":"/analytics%2Fpie1"}, {}, {} );
  </script> 
</div> 
<br /> 

<div id='flashcontent_913000'></div> 
  <script type="text/javascript"> 
    swfobject.embedSWF(
    "/open-flash-chart.swf","flashcontent_913000",
    "440", "310", "9.0.0", "expressInstall.swf",
    {"data-file":"/analytics%2Fpie2"}, {}, {} );
  </script> 
</div>

#controller
respond_to do |wants|
  wants.html {
    @graph = ofc2( 440, 310, 'analytics/pie1' )
    @graph2 = ofc2( 440, 310, 'analytics/pie2' )
  }
end
def pie1
... # functioning when put in the view alone
end
def pie2
... # functioning when put in the view alone
end

Debido a que los identificadores son los mismos, intentos <%= @graph.html_safe %> para rendir Graph2 y falla, y Graph2 no se muestra en absoluto. Necesito conseguir OFC2 para generar identificaciones diferentes. ¿Cómo puedo lograr esto?

¿Fue útil?

Solución

Resulta que se puede especificar un identificador en su controlador justo después de 'análisis / pie1', por ejemplo. Especificando el ID específicamente, eliminamos cualquier posibilidad de un algoritmo que genera el mismo número y por lo tanto no mostrar las imágenes.

Ejemplo: @graph = ofc2( 440, 310, 'analytics/pie1', '/', 'my_unique_div' )

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top