【发布时间】:2014-04-08 11:20:15
【问题描述】:
我正在构建一个应用程序,人们可以在其中投入技能。我使用以下代码制作了一个编辑控制器:
/**
* Action blueprints:
* `/skill/edit`
*/
edit: function(req, res, next) {
Skill.findOne(req.param('id'), function foundSkill(err, skill) {
// if skill is not find output an error
if (err) return next(err);
// if the skill is find
if(!skill) return next();
// Show skill
res.view({
skill:skill
});
});
// Get an array of all categorys in the Category collecction
Category.find(function foundCategorys(err, categorys) {
// if category is not find output an error
if (err) return next(err);
// pass the array down to the /view/index.ejs page
res.view({
categorys:categorys
});
});
},
用户必须根据每项技能选择一个类别。所以我认为这是实现这一目标的方法。
这是edit.ejs视图文件中的代码:
<div class="wrapper" id="skill_page">
<div class="col-md-12">
<article>
<form action="/skill/update/<%= skill.id %>" method="POST" class="form-signin" id="edit-skill-form">
<h2 class="form-sigin-heading">Edit an skill</h2>
<div class="input-form">
<input type="text" class="form-control" placeholder="Skill title" name="title" value="<%= skill.title %>">
</div>
<div class="input-form">
<select name="skillCat">
<option>Choose category</option>
<% for(category in categories) { %>
<option value="<%= category.id %>"><%= category.title %></option>
<% } %>
</select>
</div>
<div class="input-form">
<label for="ratingType">Rating on or of</label>
<select name="ratingType" id="ratingType">
<option>Choose rating type</option>
<option>No-rating</option>
<option value="true">Rating</option>
</select>
</div>
<input type="submit" class="btn btn-lg btn-primary btn-block" value="Save changes">
<input type="hidden" name="_csrf" value="<%= _csrf %>">
</form>
</article>
</div>
</div>
当我在控制台中使用sails lift 启动应用程序并转到特定技能的技能编辑页面时,会出现如下错误:
error: Error rendering view at :: /vagrant/Skillsmatrix/views/skill/edit
error: Using layout located at :: /vagrant/Skillsmatrix/views/layout
error: Server Error (500)
error: ReferenceError: /vagrant/Skillsmatrix/views/skill/edit.ejs:5
3| <div class="col-md-12">
4| <article>
>> 5| <form action="/skill/update/<%=
skill.id %>" method="POST" class="form-signin" id="edit-skill-form">
6| <h2 class="form-sigin-heading">Edit an skill</h2>
7| <div class="input-form">
8| <input type="text" class="form-control" placeholder="Skill title" name="title" value="<%= skill.title %>">
skill is not defined
但我不知道如何解决问题或我做错了什么。特别是为什么出现错误skill is not defined。如果有人给我帮助和/或反馈,我真的很棒!
【问题讨论】: