我在控制器中有 2 个动作,比如说我有一个Projects
“控制器”和两个动作 :.all
和.my
.
该
all
操作将检索Project
数据库中的所有记录并呈现视图以将它们显示在列表中。该
my
操作将执行相同的操作,但只会显示
当前用户创建的那些项目。
如何在all
我的操作中重用视图,而不必为操作复制视图my
?如果我在操作中调用此代码my
:
res.render('projects/all',
projects : projects
)
调用控制器中的all
操作,覆盖我的projects
数组。这在 Rails 中很常见,但在 NodeJS 中我不知道该怎么做。谢谢。
编辑:
这是我的操作代码(我同时放弃了,使用了两个单独的视图all
和my
相同的 HTML 生成代码:
exports.all = function(req, res) {
Project.all(req.db, function(err, projects) {
var viewVars = {
title: "All projects"
};
viewVars = req.db.paginate(req,
viewVars
);
if(!err && projects != null)
{
viewVars.projects = projects;
res.render('projects/all',
viewVars
)
}
else
{
viewVars.projects = [];
viewVars.error_messages = ["No projects available"];
res.render('projects/all',
viewVars
)
}
});
};
exports.my = function(req, res) {
Project.findByCreator(req.db, req.session.user.uri, function(err, projects) {
var viewVars = {
//title: "My projects"
};
viewVars = req.db.paginate(req,
viewVars
);
if(!err && projects != null)
{
viewVars.projects = projects;
res.render('projects/my',
viewVars
)
}
else
{
viewVars.projects = [];
viewVars.info_messages = ["You have not created any projects"];
res.render('projects/my',
viewVars
);
}
});
};