どちらも変数の挿入に同じ構文を使用します。たとえば、次のものが必要な場合
<%= username %>
私のアンダースコアでは、メインの EJS がユーザー名を置き換えようとしていて、そのような変数がメイン ページに存在しないため、壊れてしまいます。
どちらも変数の挿入に同じ構文を使用します。たとえば、次のものが必要な場合
<%= username %>
私のアンダースコアでは、メインの EJS がユーザー名を置き換えようとしていて、そのような変数がメイン ページに存在しないため、壊れてしまいます。
私はこの問題を抱えていたので、クライアント側の問題を解決するために見つけた解決策を共有すると思いました. エスケープ正規表現を変更する方法は次のとおりです( underscore.js docs経由):
_.templateSettings = {
interpolate : /\{\{(.+?)\}\}/g
};
var template = _.template( "{{example_value}}");
<%= %> を {{ }} に変更します。
角括弧はデフォルトで EJS で機能すると思います。
[%= username %]
さらに手の込んだものにする必要がある場合は、EJS github ページにカスタム タグの作成方法が説明されています。
var ejs = require('ejs');
ejs.open = '{{';
ejs.close = '}}';
https://github.com/visionmedia/ejs
クライアント側の GitHub の例を使用すると、レンダリング時に次のような構文を実行する必要があります。
var html = require('ejs').render(users, { open: "^%", close: "%^" });
オプションは の 2 番目のパラメーターですrender()
。