我最近开始学习如何使用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>
但是,当我加载相应的网址时,我看不到我的数据显示。
我已经阅读了Sails.js文档,但我似乎无法找到我的代码有什么问题。
如果有人可以帮助我解决这个问题,那将会很棒。
谢谢!
答案 0 :(得分:10)
尝试
<%= apps[applicant].name %>
就像for
循环一样。 applicant
是apps
数组中的索引。
编辑:更好的方法是使用javascript数组的内置方法forEach
,因为这样可以避免循环使用继承自apps
类型的元素(例如,元素,分配如下:apps.__proto__.foo = {name: "bar"}
或Array.prototype.foo2 = {name: "pi222"}
)。
<% apps.forEach(function(applicant) { %>
<li><%= applicant.name %> <%= applicant.email %></li>
<% }); %>
P.S。当然这个javascript的方法(forEach
)在IE&lt; = 8中不起作用(如果你考虑在浏览器中使用它)。 但是我们在NodeJs里面,它建立在V8引擎之上。无论如何,这将是有效的。