我只想在 View 文件的一部分中打印一个句子。但由 Controller 决定。 这是我的 Controller 文件 loginController
login: function(req, res){
var x = new LdapService();
console.log('inside log in action') ;
x.loginSuccessful(req.body.userid, req.body.password, function(isAuth){
console.log(isAuth) ;
if(isAuth )
res.send('successful login');
else
res.render('login/index', document.getElementById("message").innerHTML = "Log in failde. Please check your Username or Password");
});
},
我不想使用 jSon。我只想执行一个 javascript 命令并在我的 View 中打印气味。但 Controller 和登录功能应该决定它。
我的查看文件:
<div class="form-group">
<input type="password" name="password" class="form-control" placeholder="Password"/>
<br>
<p id="message"></p>
<br>
</div>
最佳答案
您似乎没有 read the documentation for views或view locals 。看起来您还混淆了后端代码(您的 Sails Controller )和前端代码;像 document.getElementById
这样的东西用于在浏览器渲染完之后在前端操作 DOM。
您在操作中想要的而不是 res.render
是:
res.view('login/index',
{message: "Log in failed. Please check your Username or Password"}
);
在您看来:
<p id="message"><%=message%></p>
请注意,如果 EJS 在模板中遇到任何未绑定(bind)的变量,它就会抛出错误,因此每次使用 res.view
渲染登录 View 时,您都必须设置本地 message
,即使它是一个空字符串。
您可能还想考虑使用flash messages对于这种事情。
关于node.js - 从 Sails.js 中的 Controller 更改 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25125248/