我正在开发sails.js app,我想在外部javascript文件中访问本地人。我以{error: "username"}
的形式回复数据,我可以通过在我的视图中调用<%= error %>
轻松访问它。但是我有另一个外部javascript文件,在其中我想做console.log(error)
但它总是未定义的。我也通过在外部javascript中声明函数来尝试另一种方式,例如function notifyError(error){console.log(error)}
,但是当我尝试从我的视图中调用此函数时,它表示此函数未定义。
关于如何将我的视图与外部javascript文件连接的任何想法?我想要这个因为我正在使用PNotify,它总是说这是未定义的,即使我已经把它搞砸了。
答案 0 :(得分:2)
从我的角度来看,你不了解视图,服务器端渲染和EJS如何工作!当您编码<%= error %>
时,您并未#34;声明变量&#34;。您这样说:&#34;将<%= error %>
替换为其内容&#34;。因此,您提供的HTML文件,而不是静态字符串,例如&#34;我的错误&#34;,您可以通过编程方式进行更改。这就是:
Sails app / Server side:
("view.ejs")
<div>
<%= error %>
</div>
("anyController.js")
res.render('view.ejs', {error : "my error string"});
User side:
<div>
my error string
</div>
查看文档HERE。
编辑:此外,如果要更改视图中的任何内容,可以使用外部js文件并将其提供给客户端(简单脚本标记)。像Angular,VueJS等的lib应该就足够了。那些lib可以向你的Sails应用程序发出/发布请求,这应该提供json答案。再次,仔细看看文档!