Sails.js – 将数据传递给视图

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

我有一个叫申请人的模式,如下所示:

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

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

 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文档,但似乎无法find我的代码有什么问题。

如果有人能帮我解决这个问题,那将是很棒的。

谢谢!

Solutions Collecting From Web of "Sails.js – 将数据传递给视图"

尝试

 <%= apps[applicant].name %> 

这就像循环工作。 applicantapps数组中的一个索引。

编辑:更好的方法是使用JavaScript数组的内置方法forEach ,因为这样你就避免了从appstypesinheritance的元素循环(例如元素,像这样分配: apps.__proto__.foo = {name: "bar"}Array.prototype.foo2 = {name: "pi222"} )。

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

PS当然,这个JavaScript的方法( forEach )不会在IE浏览器<= 8(如果你考虑在浏览器中使用它)。 但是我们在NodeJs里面,它是build立在V8引擎之上的。 所以无论如何,这将工作。