帆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 & Moe"
感谢@Armfoot我find了解决scheme。
通过npm安装underscore.js没有按预期工作。 但是,当我手动下载underscore.js文件,并将其放置在/ assets / js /目录中,然后提升帆错误消失,模板正确加载。
必须是我缺less的知识来寻找答案两天以上,这是很容易解决。 再次感谢Armfoot指引我在正确的方向。