Sails.js-将数据传递到视图

Sails.js - passing data to a view

本文关键字:视图 数据 js- Sails      更新时间:2023-09-26

我最近开始学习如何使用Sails.js,遇到了一个小问题。

我有一个名为"申请人"的模型,如下所示:

module.exports = {
  attributes: {     
     name: {
      type: 'STRING',
      required: true
     },
     email: {
      type: 'STRING',
      required: true
     }
  }
};

我已经建立了索引操作来返回申请人模型的所有实例:

module.exports = {
    index: function(req, res) {
        Applicant.findAll().done(function(err, applicants) {
            res.view({
                apps: applicants
            });
        });
    }
};

这就是我使用的观点:

<section id="applicants">
    <h1>List of applicants</h1>
    <ul>
        <% for (applicant in apps) { %>
        <li><%= applicant.name %> <%= applicant.email %></li>
        <% } %>
    </ul>
</section>

不过,当我加载相应的URL时,我看不到我的数据显示。

我已经阅读了Sails.js文档,但似乎找不到我的代码有什么问题。

如果有人能帮我解决这个问题就太好了。

谢谢!

尝试

<%= apps[applicant].name %>

这就像for循环工作一样。CCD_ 2是CCD_ 3数组中的一个索引。

编辑:更好的方法是使用javascript数组的内置方法forEach,因为这样可以避免在继承自apps的类型的元素之间循环(例如,像这样分配的元素:apps.__proto__.foo = {name: "bar"}Array.prototype.foo2 = {name: "pi222"})。

<% apps.forEach(function(applicant)  { %>
    <li><%= applicant.name %> <%= applicant.email %></li>
<% }); %>

附言:当然,这个javascript的方法(forEach)在IE<=中不起作用8(如果您考虑在浏览器中使用它)但是我们在NodeJ内部,它构建在V8引擎之上。所以,无论如何,这是可行的。