1. ホーム
  2. ジャバスクリプト

[解決済み】AngularJSとDjangoの組み合わせ - テンプレートタグの衝突

2022-03-28 03:56:13

質問

Djangoと一緒にAngularJSを使いたいのですが、両者とも {{ }} をテンプレートタグとして使用します。 2つのうちの1つを他のカスタムテンプレートタグを使用するように変更する簡単な方法はありますか?

解決方法を教えてください。

Angular 1.0では、補間シンボルの設定に$interpolateProvider apisを使用する必要があります。 http://docs.angularjs.org/api/ng.$interpolateProvider .

こんな感じでいいんじゃないでしょうか。

myModule.config(function($interpolateProvider) {
  $interpolateProvider.startSymbol('{[{');
  $interpolateProvider.endSymbol('}]}');
});

2つのことに留意してください。

  • サーバーサイドとクライアントサイドのテンプレートを混在させるのは良いアイデアとは言えず、注意して使用する必要があります。主な問題は、メンテナンス性(読みにくい)とセキュリティ(二重の補間は、新しいセキュリティベクトルを公開する可能性があります - 例えば、サーバーサイドとクライアントサイドのテンプレートのエスケープはそれ自体安全かもしれませんが、それらの組み合わせは安全ではないかもしれません)です。
  • を使用するサードパーティーのディレクティブ(コンポーネント)を使用し始めると、そのディレクティブを使用することができなくなります。 {{ }} を設定すると、テンプレートが壊れてしまいます。( 修正ペンディング )

1つ目の問題については、警告する以外にはどうしようもありませんが、2つ目の問題については対処する必要があります。