帆js模板jst.js错误找不到variables_

我是编程和学习JavaScript和Sails JS的新手。 我很喜欢它,但遇到了一个我不明白的问题。 原谅我,如果我使用了错误的术语,我没有编程背景。

我运行在Sails v0.12.1(干净安装)和OSX上(如果这很重要)

In / assets / templates我创build了一个名为“testTemplate.ejs”的模板文件。 其中只包含一个带简单文本的h3标签:

<h3>This is the template</h3> 

在我的/assets/js/app.js中,我有一个简单的jQuery“调用”来在我的客户端页面插入模板:

 $('tr:last').after( JST['assets/templates/testTemplate.ejs'](obj) ); 

到现在为止还挺好。 我的应用程序可以在所有的视图上正常工作,但是到达这一点时会显示一个错误。 错误告诉我,它找不到位于/jst.js中第一个__t(第4行)的variables“_”:

 this["JST"] = this["JST"] || {}; this["JST"]["assets/templates/addUser.ejs"] = function(obj) { obj || (obj = {}); var __t, __p = '', __e = _.escape; with (obj) { __p += '<h3>Dit is de template</h3>'; } return __p }; 

我试着用下面的命令安装underscore.js:

 npm install underscore --save 

但是这没有什么区别。 我也试图使用HTML而不是ejs模板(也改变了pipe道)。

我不知道为什么我得到这个错误:

 ReferenceError: Can't find variable: _ 

或者我应该/可以修复它。

谁能帮帮我吗?

也许underscore.js以前没有正确的导入或引用,试着在加载的代码中find类似这行的东西:

 <script src="YOURPATH/underscore.js"></script> 

或者在使用下划线之前尝试添加它:

 $.getScript("https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js", function( data, textStatus, jqxhr ) { console.log( data ); // Data returned console.log( textStatus ); // Success console.log( jqxhr.status ); // 200 console.log( "Load was performed." ); }); 

根据他们的文档,你需要在转义函数中添加一个string参数。 例如:

 _.escape('Curly, Larry & Moe'); => "Curly, Larry &amp; Moe" 

感谢@Armfoot我find了解决scheme。

通过npm安装underscore.js没有按预期工作。 但是,当我手动下载underscore.js文件,并将其放置在/ assets / js /目录中,然后提升帆错误消失,模板正确加载。

必须是我缺less的知识来寻找答案两天以上,这是很容易解决。 再次感谢Armfoot指引我在正确的方向。