无法在外部访问本地 javascript

Can't access locals in external javascript

我正在开发 sails.js 应用程序,我想在其中访问外部 javascript 文件中的本地文件。我以 {error: "username"} 的形式返回数据作为响应,我可以通过在我的视图中调用 <%= error %> 轻松访问它。但我有另一个外部 javascript 文件,我想在其中执行 console.log(error) 但它始终未定义。我也通过在外部 javascript 中声明函数来尝试另一种方法,就像这样 function notifyError(error){console.log(error)} 但是当我尝试从我的角度调用这个函数时,它说这个函数是未定义的。

知道如何将我的视图与外部 javascript 文件连接起来吗?我想要这个,因为我正在使用 PNotify,它总是说这是未定义的,即使我已经改进了它。

在我看来,您不了解视图、服务器端呈现和 EJS 的工作原理!当您编码 <%= error %> 时,您不是 "declaring a variable"。你是这样说的:"Replace <%= error %> with its content"。因此,您提供的 HTML 文件而不是像 "my error here" 这样的静态字符串,您可以通过编程方式更改它。这是发生了什么:

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应该就够了。这些库可以向您的 Sails 应用发出 get/post 请求,应该提供 json 答案。再一次,好好看看文档!