Как прочитать определенные данные в Django, когда я использую этот JS Libraly? - PullRequest
1 голос
/ 06 декабря 2011

Я хочу использовать этот js Libarry ( Tickp ), чтобы составить биржевую диаграмму в django.

и я пишу шаблон:

    <script type="text/javascript" src="/site_media/stats.js"></script>
        <script type="text/javascript" src="/site_media/tkcip.js"></script>   


<script>
    $(document).ready(function() {
        scrips = undefined;
        if($.browser.msie) {
            if($.browser.version < "9.0") { 
                var htmlstr = '<h5> Your browser \'IE : ' + $.browser.version + '\' does not support certain HTML 5 features natively, which we use. You won\'t be able to experience the full capabilities without those. Workarouns include - Using <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a> Plugin. To read more about \'Google Chrome Frame\' plugin, please read the following <a href="http://en.wikipedia.org/wiki/Google_Chrome_Frame"> article on Wikipedia</a>.' 
                $("#chart").html(htmlstr);
            }
        } 


        plot =  window.tickp("#chart") 
        plot.read({{ hisdata }}) 
        plot.plot()               
    });
    </script>

                  <div id="chart" >

                 
                  </div>   

и я проверяю формат {{hisdata}} следующим образом:

[[734472, 17,579999999999998, +17,649999999999999, +17,309999999999999, 17,5, 14635299], [734472, 17,579999999999998, +17,649999999999999, 17,309999999999999, 17,5, 14635299], [734472, +17,579999999999998, 17,649999999999999, 17,309999999999999, 17,5, 14635299]]

но в браузере ничего не происходит, что не так с моим кодом?

1 Ответ

1 голос
/ 06 декабря 2011

Это работает, когда я исправил tkcip.js как tickp.js.Пожалуйста, используйте инспектор webkit или firebug и проверьте коды javascript с помощью JSLint.Это дает синтаксическую ошибку в Internet Explorer из-за пропущенных точек с запятой.

my views.py:

from django.views.generic import TemplateView


class CoreIndex(TemplateView):
    template_name = 'core/index.html'

    def get_context_data(self, **kwargs):
        context = super(CoreIndex, self).get_context_data(**kwargs)
        context.update({
            'his_data': [
                [734472, 17.579999999999998, 17.649999999999999,17.309999999999999, 17.5, 14635299],
                [734472, 17.579999999999998, 17.649999999999999, 17.309999999999999, 17.5, 14635299],
                [734472, 17.579999999999998, 17.649999999999999, 17.309999999999999, 17.5, 14635299]
            ]
        })

        return context

my core / index.html:

<html>
    <head>
        <script type="text/javascript" src="{{ STATIC_URL }}js/libs/jquery-1.7.1.min.js"></script>
        <script type="text/javascript" src="{{ STATIC_URL }}js/libs/stats.js"></script>
        <script type="text/javascript" src="{{ STATIC_URL }}js/libs/tickp.js"></script>
        <script type="text/javascript">
            window.hisData = {{ his_data }}
        </script>
        <script type="text/javascript" src="{{ STATIC_URL }}js/application.js"></script>
    </head>
    <body>
        <div id="chart"></div>
    </body>
</html>

и мойapplication.js:

$(document).ready(function() {
    if($.browser.msie) {
        if($.browser.version < "9.0") {
            var htmlstr = '<h5> Your browser \'IE : ' + $.browser.version + '\' does not support certain HTML 5 features natively, which we use. You won\'t be able to experience the full capabilities without those. Workarouns include - Using <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a> Plugin. To read more about \'Google Chrome Frame\' plugin, please read the following <a href="http://en.wikipedia.org/wiki/Google_Chrome_Frame"> article on Wikipedia</a>.';
            $("#chart").html(htmlstr);
        }
    }

    var plot = window.tickp("#chart");
    plot.read(window.hisData);
    plot.plot();
});
...