我有一个ejs javascript模板:
/assets/linker/template
我改变了gruntfile.js中的行:
linker/**/*.html
至linker/**/*.ejs
我有下划线.js:
assets/linker/js
但是当我尝试时:
来自JST['assets/linker/templates/addUser.ejs']( obj )
app.js
我在控制台中收到此错误:
ReferenceError: JST is not defined
任何帮助将不胜感激!谢谢!
答案 0 :(得分:1)
我遇到了同样的问题。我通过手动将JST链接到我的index.ejs文件来解决它。
所以我刚才补充道
<script type="text/javascript" src="/jst.js"></script>
我在sailsProject&gt; views&gt; home&gt; index.ejs中加载我的javascripts。
不漂亮,因为链接器应该完成这项工作,但现在它可以工作。
欢呼声
答案 1 :(得分:0)
注入的模板文件在tasks/pipeline.js
中指定默认设置为:
cx_Oracle
注入带有 .html 文件扩展名的assets/templates(或任何子目录)中的文件。
同时查看tasks/config/jst.js中的JST任务。它接受模板文件(来自pipeline.js)并将它们预编译到名为var templateFilesToInject = ['templates/**/*.html']
的文件中。
只有完成其他任务后,sails-linker才会开始执行任务。 tasks/config/sails-linker.js获取由JST任务生成的jst.js
,并将其包含在jst.js
,.tmp/public/index.html
和views/**/*.html
中的模板开始和模板结束标记中。
因此,客户端模板的默认管道是:
views/**/*.ejs
预编译为templates/**/*.html
jst.js
,jst.js
和index.html
views/**/*.html
和views/**/*.ejs
<!--TEMPLATES-->
醇>
可以更改所有此默认配置以满足您的需要。例如,要使模板具有不同的扩展程序或多个扩展程序,请修改<!--TEMPLATES END-->
中的templateFilesToInject
:
tasks/pipeline.js
或者只有在具有评论let templateFilesToInject = [
'vendor/templates/vendor_template.html',
'templates/**/*.ejs',
'templates/**/*.html'
]
的特定视图时才注入模板,请在<!--TPL--><!--END TPL-->
中修改devTpl
配置:
tasks/config/sails-linker.js