我是新来的 Sails.js
我试图assets/templates
在sails中使用该功能来呈现数据客户端,但我似乎找不到任何有用的示例.
我正在寻找原生的Sails解决方案,没有角度或其他框架.只需.JST
从中加载模板assets/templates
并使用jQuery填充它们
任何人都可以参考使用客户端模板的工作示例
sails.js?
Akseli Palén.. 6
这篇文章真的缺乏文档.但是,我设法通过以下步骤在Sails 0.12.4中使用客户端模板:
默认情况下,您应该已经拥有一个包含views/homepage.ejs
模板部分的文件:
... ...
现在,通过运行$ sails lift
,将模板assets/templates/
编译成一个javascript文件jst.js
,然后自动插入views/homepage.ejs
模板部分注释标签之间.但是,我们首先需要一个模板!
写一个模板文件,说assets/templates/example.ejs
:
<%= message %>
有一个问题.默认情况下,Sails仅编译以*.html
.结尾的模板.这没有意义,因为模板文件显然不是HTML,也因为服务器端模板views/
已经具有扩展名.ejs
.要更改它,请替换以下行tasks/pipeline.js
:
var templateFilesToInject = [ 'templates/**/*.html' ];
同
var templateFilesToInject = [ 'templates/**/*.ejs' ];
这使我们example.ejs
可以编译成jst.js
一个javascript函数.
这还不够.在编译的JavaScript jst.js
取决于下划线或交替Lodash.如果没有_
在客户端的命名空间中,执行模板函数将引发错误.
要在客户端导入此选项,请下载您选择的版本并将其置于其下assets/js/dependencies/
.例如,缩小的Lodash核心似乎就足够了.在接下来的过程中sails lift
,将自动插入文件的新脚本标记homepage.ejs
,最终放入_
命名空间.
默认情况下,运行$ sails lift
并浏览到localhost:1337的主页.在jst.js
已创建的模板函数window.JST['assets/templates/example.ejs']
.
要对其进行测试,请打开开发人员控制台,然后键入:
> window.JST['assets/templates/example.ejs']({message: 'Hello'})
这应该返回你的字符串
.您现在要将此字符串插入到文档中的某处.我们假设您将其存储到变量中Hello
piece
.你可以使用jQuery $('#target').html(piece)
或旧的document.getElementById('target').innerHTML = piece
.无论如何,结果,渲染的字符串现在插入到#target元素下的页面中.
这篇文章真的缺乏文档.但是,我设法通过以下步骤在Sails 0.12.4中使用客户端模板:
默认情况下,您应该已经拥有一个包含views/homepage.ejs
模板部分的文件:
... ...
现在,通过运行$ sails lift
,将模板assets/templates/
编译成一个javascript文件jst.js
,然后自动插入views/homepage.ejs
模板部分注释标签之间.但是,我们首先需要一个模板!
写一个模板文件,说assets/templates/example.ejs
:
<%= message %>
有一个问题.默认情况下,Sails仅编译以*.html
.结尾的模板.这没有意义,因为模板文件显然不是HTML,也因为服务器端模板views/
已经具有扩展名.ejs
.要更改它,请替换以下行tasks/pipeline.js
:
var templateFilesToInject = [ 'templates/**/*.html' ];
同
var templateFilesToInject = [ 'templates/**/*.ejs' ];
这使我们example.ejs
可以编译成jst.js
一个javascript函数.
这还不够.在编译的JavaScript jst.js
取决于下划线或交替Lodash.如果没有_
在客户端的命名空间中,执行模板函数将引发错误.
要在客户端导入此选项,请下载您选择的版本并将其置于其下assets/js/dependencies/
.例如,缩小的Lodash核心似乎就足够了.在接下来的过程中sails lift
,将自动插入文件的新脚本标记homepage.ejs
,最终放入_
命名空间.
默认情况下,运行$ sails lift
并浏览到localhost:1337的主页.在jst.js
已创建的模板函数window.JST['assets/templates/example.ejs']
.
要对其进行测试,请打开开发人员控制台,然后键入:
> window.JST['assets/templates/example.ejs']({message: 'Hello'})
这应该返回你的字符串
.您现在要将此字符串插入到文档中的某处.我们假设您将其存储到变量中Hello
piece
.你可以使用jQuery $('#target').html(piece)
或旧的document.getElementById('target').innerHTML = piece
.无论如何,结果,渲染的字符串现在插入到#target元素下的页面中.