这是一个示例,可能有助于将您带到您想去的地方。
您可以将模板放在 /assets/linker/template 目录中。当您使用 --linker 参数创建新的sails 应用程序时,会创建链接器目录。因此,例如,假设我有一个名为 addUser.ejs 的模板文件,其中包含将用户添加到现有表的以下代码:
<tr data-id="<%- user.id %>" data-model="user">
<% if (user.online) { %>
<td><img src="./images/icon-online.png"></td>
<% } else { %>
<td> <img src="./images/icon-offline.png"></td>
<% } %>
<td><%= user.id %></td>
<td><%- user.name %></td>
<td><%- user.title %></td>
<td><%- user.email %></td>
<% if (user.admin) { %>
<td> <img src="/images/admin.png"></td>
<% } else { %>
<td> <img src="/images/pawn.png"></td>
<% } %>
<td><a href="/user/show/<%- user.id %>" class="btn btn-small btn-primary">Show</a></td>
<td><a href="/user/edit/<%- user.id %>" class="btn btn-small btn-warning">Edit</a></td>
<td><form action="/user/destroy/<%- user.id %>" method="POST">
<input type="hidden" name="_method" value="delete"/>
<input type="submit" class="btn btn-sm btn-danger" value="Delete"/>
<input type="hidden" class="_csrf" name="_csrf" value="<%- _csrf %>" />
</form></td>
</tr>
在这个例子中,我现在可以在 /assets/linker/js 中包含的一个单独的 javascript 文件中使用该模板,其中包含以下内容:
$( 'tr:last' ).after(
JST['assets/linker/templates/addUser.ejs']( obj )
);
因此,这采用模板并使用我随模板传入的 obj 来生成附加到 dom 中的所需 html。
编辑
另外,进入 Gruntfile.js 大约第 80 行应该如下:
var templateFilesToInject = [
'linker/**/*.html'
];
将 *.html 更改为 *.ejs。
最后,将 underscore.js 库添加到您的 assets/linker/js 目录。
拥有链接器目录结构也很重要。我相信无论您是否使用 --linker 名称,Gruntfile.js 都是相同的,因此请创建一个名为 linker 的资产目录,其中包含 js、样式和模板的子目录。移动新链接器目录下 assets/js assets/styles 下的现有文件。