在同一视图中重用具有不同内容的部分内容

时间:2014-12-28 19:22:38

标签: javascript sails.js

如Sails.js文档中所述:

  

您的所有本地人都将自动发送到部分。

所以我想知道如何在同一视图中多次使用相同的局部,但内容不同。

假设我有前3个用户的列表,以及最新3个用户的列表。 这些列表具有相同的HTML结构和相同的CSS样式,但它们的内容不同。

如何使用相同的部分(例如user / list.ejs)来显示这两个列表? 有没有人知道是否有办法将特定数据传递给部分数据而不是视图本地?

提前致谢。

丹尼斯

1 个答案:

答案 0 :(得分:2)

Sails使用ejs-locals库来处理partials,这允许将partial的选项作为第二个参数发送。所以在你的模板中你可以这样做:

<h1>Top users: </h1>
<p>
  <%= partial('user/list.ejs', {users: topUsers}) %>
</p>

<h1>New users: </h1>
<p>
  <%= partial('user/list.ejs', {users: newUsers}) %>
</p>

users部分内的user/list.ejs提供不同的值,前提是当您显示包含部分的视图时,您提供topUsersnewUsers作为本地人,即在你的控制器动作中:

res.view("myView", {topUsers: [array of users], newUsers: [array of users]});