24

構築しているNode.jsWebサーバーでEJSを使用しています。HTMLまたは文字列を出力するときに使用することがある多くのEJSの例を目にし<%=ますが、他の例(同じテンプレート内にある場合もあります)はを使用します<%-

EJSドキュメントと入門ガイドを参照しようとしましたが、どちらも<%-表記に関する情報を提供していませんでした。また、私のグーグル検索の試みは何も役に立たなかった。ありがとう!

4

5 に答える 5

26

Nodeで使用している可能性のあるEJSのバージョンは、Googleコードで表示されているバージョンと同じではありません。Nodeバージョンで<%=は、HTMLをエスケープしてバッファに入れますが、エスケープ<%-しません。ソース

于 2012-06-14T00:45:41.450 に答える
16

http://ejs.co/から:

<% 'Scriptlet' tag, for control-flow, no output
<%= Outputs the value into the template (HTML escaped)
<%- Outputs the unescaped value into the template
于 2017-08-01T17:39:26.690 に答える
4

<%= *param* %>ビューからコントローラーへ、またはその逆にデータを転送するために使用されます

<%- %>のコードを含めることです

私のプロジェクトでは

ここに画像の説明を入力してください

于 2020-03-04T09:25:54.970 に答える
2

HTMLコードを保持する文字列を保持するいくつ<%=かの変数をレンダリングする場合、そのHTMLコードはレンダリングされませんが、クロスサイトスクリプティング攻撃を回避するためにテキストとしてレンダリングされます。
マイナス(<%-)を使用すると、これを回避して、実際にHTMLコードをレンダリングできます。

于 2019-03-01T22:17:52.947 に答える
0

1)オプション1:ejsファイルは、たとえばreq.body値を保持する「noob」と呼ばれる変数をインポートしています。 <p><%= noob %></p>

2)オプション2:「partials」フォルダー内にある「myPartial.ejs」という部分テンプレートをインポートするejsファイル。 <p><%- include("./partials/myPartial") %></p>

3)オプション3:ejsファイルはjavascriptコードを使用しています:

<p>
<% while (i < 10) { %>
  myVar += "The number is " + i;
  i++;
<% } %>
</p>
于 2021-07-07T12:58:53.110 に答える