テンプレートは JavaScript を保存するためのものではありません。ビューによってレンダリングされるダム html テンプレートであると想定されています。
ビューからテンプレートをロードするとき、このビューは、アプリケーションと対話するすべての DOM 要素とバインドする必要があります。
ビューがDOMへのバインディングのみを持っている場合は、内部イベントをトリガーできるため、良い方法です。
次に、ビュー インスタンスをリッスンして対話する「コントローラー」を作成し、メソッドをトリガーして DOM で何らかの変更を行ったり、ビューで使用されるコレクションやモデルを準備したりできます。
ただし、他の多くのライブラリを使用して、コード ロジックの読み込みを整理できます。
私はrequirejsが好きですが、 commonjsには便利なオプションがたくさんあります。
テンプレート内に JavaScript を配置することは、HTML と混合して配置するようなものです。ロジックと構造を混在させているため、アプリケーションが大きくなると保守が難しくなるため、これはお勧めできません。
コードを MVC スタイルで整理しているため、大規模なアプリケーションの拡張とテストが簡単になります。たとえば、モデル/コレクションが必要な場合、それらは MODEL/COLLECTION フォルダーにあり、CONTROLLER フォルダーにはアプリケーションの論理部分が保持され、VIEW フォルダーには DOM と対話するファイルが保持され、Django のようにテンプレートを追加しました可能な限りシンプルなテンプレートのフォルダー。
あなたの問題を説明するだけです:
スクリプトを含むテンプレートをロードすると、スクリプトが実行されます。この後、テンプレートはメモリに保存されます。つまり、内部のスクリプトが再びトリガーされることはありません。あなたはそれを修正することができますが、あなたはそれを間違って行うでしょう. Backbone でビュー render メソッドをバインドすることにより、レンダリング後にスクリプトをトリガーできます。