9

どちらも変数の挿入に同じ構文を使用します。たとえば、次のものが必要な場合

<%= username %>

私のアンダースコアでは、メインの EJS がユーザー名を置き換えようとしていて、そのような変数がメイン ページに存在しないため、壊れてしまいます。

4

3 に答える 3

9

私はこの問題を抱えていたので、クライアント側の問題を解決するために見つけた解決策を共有すると思いました. エスケープ正規表現を変更する方法は次のとおりです( underscore.js docs経由):

_.templateSettings = {
    interpolate : /\{\{(.+?)\}\}/g
};
var template = _.template( "{{example_value}}");

<%= %> を {{ }} に変更します。

于 2012-08-19T01:39:08.487 に答える
8

角括弧はデフォルトで EJS で機能すると思います。

[%= username %]

さらに手の込んだものにする必要がある場合は、EJS github ページにカスタム タグの作成方法が説明されています。

var ejs = require('ejs');
ejs.open = '{{';
ejs.close = '}}';
  • 2番目の「手の込んだ」部分は、サーバー側のアプリケーションに固有のものかもしれないと思います

https://github.com/visionmedia/ejs

クライアント側の GitHub の例を使用すると、レンダリング時に次のような構文を実行する必要があります。

var html = require('ejs').render(users, { open: "^%", close: "%^" });

オプションは の 2 番目のパラメーターですrender()

于 2012-04-23T14:53:04.653 に答える