Webアプリを作る時に、バックエンドをPythonのDjango、フロントエンドをAngular JSだと、コンフリクトが起きてしまいます。しかも配列を使っている場合、一般的な方法も上手く行かず、ハマってしまいましたので書いておきます。
コンフリクトは何故起きる?
Djangoのテンプレートでは、{{と}}をパラメータ挿入などに使いますが、Angular JSでも{{と}}をマークアップの始めと終わりに使います。そのためコンフリクトが起きてしまうようです。
Angular JSのマークアップを別のもので行う
同じ{{}}を使うからコンフリクトしてしまうわけで、それに対して、Angular JS側のマークアップタグを別のものに変更する方法が用意されています。
<script>
var customInterpolationApp = angular.module('myapp', []);
customInterpolationApp.config(function($interpolateProvider) {
$interpolateProvider.startSymbol('//');
$interpolateProvider.endSymbol('//');
});
</script>
Appのconfigで
$interpolateProvider.startSymbol('//');
で開始タグを好きなものに、
$interpolateProvider.endSymbol('//');
で終了タグを好きなものに変えられます。
※ここでは、両方とも//に変更しています。
テンプレート中の{{と}}も指定したタグ//に変更します。
検索していると[[と]]に変えている人が多いようでしたが、その場合、Angural JSの中で配列[]を使うと動かないようです。//にすることで、動くようになりました。
他に、Python側で対応する方法もあるようですが、この方法が私には簡単でしたので、共有しときます。