テンプレートに関連するJavaScriptオブジェクトを設定するテンプレートファイルの中にJavaScriptがあります。htmlテンプレート内でjavascriptを処理する方法
<hr class="statcard-hr mb-0">
</div>
<canvas id="chart-ph" width="378" height="94" class="sparkline"
style="width: 200px; height: 50px;"></canvas>
</div>
</div>
</div>
</table>
</div>
<script>
//populate initial chart data
getSensorData('recent');
//create chart
createChart('chart-temp', 10, 30);
createChart('chart-hum', 20, 60);
createChart('chart-ec', 500, 2800);
createChart('chart-ph', 4, 8);
</script>
{% endblock %}
問題は、テンプレートファイルは(基本テンプレートの下にロードされている)、メインの.jsファイルの前にロードされていることです。したがって、createChartとgetSensorDataは定義されていません。私はあなたが通常これを構造化しようとしている方法が不思議です。
テンプレートにJavaScriptオブジェクトを設定するのは理にかなっていますが、通常は別の方法で行うのでしょうか?
以下のような準備ができて、文書内の呼び出しを配置する必要があります。したがって、スクリプトなしでレンダリングできるようにテンプレートを作成する場合は、後でそのスクリプトをいつでも追加して、その機能をレンダリングされたテンプレートに追加することができます。あなたのページに実際に見えるようにjavascriptを実行する必要がある場合は、使用するアーキテクチャに欠陥があります。 – Shilly
あなたはあなたのhtmlファイルの中で 'javascript'を使っています。単純に '.js'ファイルに移動するか、ファイルを最初にロードしてください。 –