在sails.js中查找模型中的所有用户但由于某种原因无法将它们添加到html中

时间:2014-06-05 17:48:15

标签: sails.js

我有一个“用户”模型和一个“实验室”模型。 当我创建一个新的Lab对象时,我希望能够以“select”html格式从列表中选择用户... 因此,在lab / new.ejs的视图中,我首先通过执行以下操作在服务器控制台中显示User模型数据库中的所有用户:

<% User.find(function(err, users) {
    _.each(users, function(user) {%>
<%console.log(user.name)%>
<% }) 
});%>

它会正确显示我所有用户名的列表。 但是当我尝试将所有这些用户放在下面的选择表单中时,选择表单将返回空,并带有以下代码...

<div class="control-group">
    <select multiple class="form-control" name="users">
    <% User.find(function(err, musers) {
        _.each(musers, function(muser) {%>
            <option><%=muser.name%></option>
        <% }) 
    });%> 
</select>
</div>  

.ejs视图似乎没有看到&lt;%= muser.name%&gt;的内容服务器做的变量......任何想法为什么?

1 个答案:

答案 0 :(得分:1)

您不应该在视图中运行异步代码。在控制器中找到您想要的用户,然后将其作为视图本地提供给视图:

<强> API /控制器/ LabController.js:

new: function(req, res) {
    User.find(function(err, users) {
        if (err) {return res.serverError(err);}
        return res.view({users: users});
    });
}

<强>视图/实验室/ new.js:

<div class="control-group">
    <select multiple class="form-control" name="users">
    <% _.each(users, function(user) {%>
       <option><%=user.name%></option>
    <% }) %>
</select>
</div>