无法在外部JavaScript中访问本地人

时间:2017-11-05 12:03:01

标签: javascript sails.js

我正在开发sails.js app,我想在外部javascript文件中访问本地人。我以{error: "username"}的形式回复数据,我可以通过在我的视图中调用<%= error %>轻松访问它。但是我有另一个外部javascript文件,在其中我想做console.log(error)但它总是未定义的。我也通过在外部javascript中声明函数来尝试另一种方式,例如function notifyError(error){console.log(error)},但是当我尝试从我的视图中调用此函数时,它表示此函数未定义。

关于如何将我的视图与外部javascript文件连接的任何想法?我想要这个因为我正在使用PNotify,它总是说这是未定义的,即使我已经把它搞砸了。

1 个答案:

答案 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答案。再次,仔细看看文档!