我试图从表单提交数据,然后从 Controller 有3种可能性,它已经存在,数据错误,它已成功创建。然后我想向前端返回一个值,假设一切正常,我返回{result: 0}。 然后使用 ejs 检查“结果”的值,如果它是 0,我想调用(前端)javascript 函数。
EJS:
<html>
<head>
<script src="functions.js">
</head>
<body>
<form action="/test" method="POST">
<input type="text" name="data" />
<button>Send</button>
</form>
<div id="message">
<% if (typeof result !== 'undefined' && result === 0){ %><script>showMessage();</script><% } %>
</div>
</body>
</html>
Javascript(前端)
function showMessage() {
document.getElementById('message').innerText = "sometext";
}
Javascript(后端)
module.exports = {
postData: function (req, res) {
Data.findOne({data: req.param('data')}).exec(function (err, data) {
if (err) {
return {result : 1};
}
if (data) {
return {result: 2};
}
if (!data) {
Data.create({data: req.param('data')}, function (err, data) {
if (err) {
return {result: 1};
}
return {result: 0};
});
}
});
}
}
我知道如何使用 res.view() 发送数据,但我不想再次重新加载页面,我只想向前端发送一些内容并执行一些操作。
感谢您的宝贵时间。
最佳答案
最好的选择是包含您想要内联执行的 Javascript 脚本。然后,如果结果等于 0,您可以使用条件 EJS 子句来包含您的脚本。
<% if (result == 0) { %>
<script type="text/javascript">
/* Your Function Here */
</script>
<% } %>
关于javascript - 在 Sails.js 中将值从后端发送到前端并使用 EJS 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43605410/