EJSの本当の初心者として、htmlページに2つのチャートがあるので、パーシャルを2回使用したいと思います。
<% include partials/spider-chart.ejs %>
しかし、グラフを区別するために、ejs内でいくつかのパラメーターを渡す必要があります。
最善の方法は何ですか?
@Naeem Shaikhソリューションが機能します。 include
を使用すると、部分的なテンプレートを含めたり、コンテキスト変数を ejsのドキュメントセクション にあるように渡す直観的な方法も提供されます。
<ul>
<% users.forEach(function(user){ %>
<%- include('user/show', {user: user}); %>
<% }); %>
</ul>
同じpartialejsテンプレートを使用して、(メインejsファイル内で)異なるデータを提供するだけで、2つの異なるチャートをレンダリングしたいと思います。
変数を定義するだけで、data
に割り当てられ、最初のチャートで使用されますが、chart.ejs
ファイル、再度data
を変更し、部分的なejsファイル(chart.ejs)を再び含めるため、同じ変数(データ)を使用できる2つのファイルがありますが、値に基づいて異なるチャートをプロットできますdata
に割り当てられます。
例:
<% var data= 'data to be used by first chart(parameter)'; %>
<% include partials/spider-chart.ejs %>
// re-initializing data for second chart
<% data= 'data to be used by second chart(parameter)'; %>
<% include partials/spider-chart.ejs %>
どこ spider-chart.ejs
ファイルはdata
を使用するものです
spider-chart.ejs
<li>
<%= data %> // just an example
</li>
ここで、データを使用すると、すべてのチャートの前にデータの値を再割り当てするため、両方のチャートでアクセスされるデータ変数は異なります。
ここでは、単一のデータと複数のデータを渡すことができます
レンダリング機能で
このように複数のデータをオブジェクトとして渡すことができます
_app.get("/account", function(req, res) {
res.render("account", {
name: 'Jon Snow',
age: 35
});
});
_
そして、このようなejsシンプルなテンプレートタグを使用してaccount
内のデータにアクセスできます
_<h2> hello <%= name %> </h2> <p> your age is <%= age %> </p>
_
部分ビューの場合
このようなデータを渡す
<%- include('partials/logout', {name='triyon'}) %>
上記のようにアクセスします
_<h2> logged out <%= name %> </h2>
_
これは、ベースejsファイルをレンダリングするときに、ビューファイル名をコンテキストとして渡すだけで、最善の回避策です。
/base.ejs:
<html>
<%- include(content) %>
</html>
/extra.ejs:
<div> some content which is to be added in base ejs file </div>
/controller.js:
res.render('base', { content: 'extra' })